| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 787 人关注过本帖
标题:请教一下,super类的使用规则
只看楼主 加入收藏
章鱼哈哈
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2005-12-19
收藏
 问题点数:0 回复次数:6 
请教一下,super类的使用规则
有哪为高手可以告诉我一下,super类的使用规则,谢谢哦
搜索更多相关主题的帖子: super 规则 
2006-12-27 16:35
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
super类就是调用父类中的方法
也可以用在构造函数中,调用父类的构造函数
当用在构造函数中的时候,必须放在第一位,

可惜不是你,陪我到最后
2006-12-27 16:51
zhjn_1986
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-16
收藏
得分:0 
  2楼说得很对

2006-12-27 17:14
117ai
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-12-9
收藏
得分:0 
我翻了一下书,书上说关键字super代表父类,因此可以使用super.variable,spuer.method来表示父类的成员变量,成员函数。这在子类与父类出现成员变量或成员函数同名的情形下,可利用super来作出区分。有一个例子:
class SuperUsage_f{
int x=3;
void printx(){System.out.println("父类变量X的值:"+x);}
}
class SuperUsage_c extends SuperUsage_f{
int x=10;
void printfatherx(){System.out.println("父类变量X的值:"+super.x);};
void printchildx(){System.out.println("子类变量X的值:"+x);}
void print2x(){
super.printx();
printchildx();
}
}
class RunSuper{
public static void main(String args[]){
SuperUsage_c obj_c=new SuperUsage_c();
obj_c.printfatherx();
obj_c.printchildx();
obj_c.print2x();
}
}
不知这算不算完整了?

人真的很奇怪,以前看书时老喜欢看表,希望时间快点过;现在看书总是不敢看表,但时间却很快过!
2006-12-27 17:27
禹_二
Rank: 1
等 级:新手上路
帖 子:661
专家分:0
注 册:2006-9-13
收藏
得分:0 
父类的变量和方法,可以继承也可以重写.

[此贴子已经被作者于2006-12-27 17:54:15编辑过]



2006-12-27 17:53
katong
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-28
收藏
得分:0 

当子类重载父类的方法或成员变量,如果仍然想使用父类中的方法或变量。可以使用特殊变量super。格式为super.方法,例如:class Animal
{
int height,weight;
Animal(int height,int weight)
{
//System.out.println("animal construct");
}
void eat()
{
System.out.println("animal eat");
}
void sleep()
{
System.out.println("animal sleep");
}
void breathe()
{
System.out.println("animal breathe");
}
}

class Fish extends Animal
{
int height;
Fish()
{
super(30,40);
//Animal(30,40);错误,构造方法不能被继承
// System.out.println("fish construct");
}
/*void breathe()
{
//super.breathe();
//super.height=40;
System.out.println("fish breathe");
}*/
}

class Integration
{
static void fn(Animal an)
{
an.breathe();
}
public static void main(String []args)
{
//Animal an=new Animal();
//Fish fh=new Fish();
//Animal an;
//an=fh;
//Integration.fn(an);
//an.breathe();
//fh.height=30;
//fh.breathe();
Animal an=new Animal(30,40);
Fish fh=new Fish();
an=fh;
/*if(an instanceof Animal)
{
System.out.println("an 是Animal的一个实例.");
}
if(fh instanceof Fish)
{
System.out.println("fh 是Fish的一个实例.");
}
*/
if(fh instanceof Animal)
{
System.out.println("fh是Animal的一个实例.");
}
else
System.out.println("fh不是Animal的一个实例.");
if(an instanceof Fish)
{
System.out.println("an是Fish的一个实例.");
}
else
System.out.println("an不是Fish的一个实例.");
}
}

2006-12-28 20:05
lxx2844
Rank: 1
等 级:新手上路
威 望:2
帖 子:129
专家分:0
注 册:2006-12-5
收藏
得分:0 

super是指向父类的构造函数的,而且只建立在子承父类上,必须放在子类的构造函数里面第一行处,


www./ Bst Love java!
2007-01-01 01:21
快速回复:请教一下,super类的使用规则
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017032 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved