java标签的限制_java中的super限定

super的用法:

(1)如果需要在子类中调用父类中被覆盖的实例方法,可以用super限定来调用父类中被覆盖的方法。当然,也可以调用从父类继承的实例变量。

public void callOverridedMethod()

{

super.fly();//fly()是父类中被覆盖的方法

}

注:super限定用于限定该对象调用它从父类继承的实例变量或者方法,但是super不能出现在static修饰的方法中,因为,static修饰的方法是属于类的,该方法的调用者可能是一个类,而不是一个对象,因此super限定也就失去了意义。?不明白什么意思,从书上看到的,求高手指教!谢谢!

(2)如果在构造器中使用super,则super用于限定该构造器初始化的是该对象从父类继承得到的实例变量,而不是该类自己定义的实例变量。

public class BaseClass

{

public int a=10;

}

public class SupClass extends BaseClass

{

//隐藏了父类中的实例变量a

public int a=1;

public SupClass()

{

//在构造器中使用super,可以访问父类中被隐藏的实例变量

super.a=100;//这里初始化的是BassClass中的实例变量的值

}

}

(3)在一个构造器中调用另一个重载的构造器使用this来完成。

public class Person

{

private String name;

private int age;

public Person(String name)

{

this.name=name;

}

public Person(String name,int age)

{

this(name);//调用重载的构造器 , public Person(String name)

this.age=age;

}

}

在子类构造器中调用父类的构造器,使用super来完成。

class Person

{

private String name;

private int age;

public Person(String name,int age)

{

this.name=name;

this.age=age;

}

}

public class ChinesePerpon

{

private String skin;

public ChinesePerson(String name,int age,String skin)

{

super(name,age);

this.skin-skin;

}

}

注:代码是手写的,出错很多,谅解!

super和this很像。super调用的是父类的构造器(在子类构造器的第一行),而this调用的是同一个类中重载的构造器(在该类构造器的第一行,由于位置的约束,导致this和super不能同时出现)。

构造器的调用总是从最高父类开始的,最后才是该类的构造器。上面的代码中先是调用Person的构造器,在调用ChinesePerson的构造器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值