当前位置: 代码迷 >> Java相关 >> 请教一下,super类的使用规则
  详细解决方案

请教一下,super类的使用规则

热度:223   发布时间:2006-12-27 16:35:38.0
请教一下,super类的使用规则
有哪为高手可以告诉我一下,super类的使用规则,谢谢哦
搜索更多相关的解决方案: super  规则  

----------------解决方案--------------------------------------------------------
super类就是调用父类中的方法
也可以用在构造函数中,调用父类的构造函数
当用在构造函数中的时候,必须放在第一位,
----------------解决方案--------------------------------------------------------
恩  2楼说得很对
----------------解决方案--------------------------------------------------------
我翻了一下书,书上说关键字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:54:15编辑过]



----------------解决方案--------------------------------------------------------

当子类重载父类的方法或成员变量,如果仍然想使用父类中的方法或变量。可以使用特殊变量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的一个实例.");
}
}


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
  相关解决方案