public 子类 extends
父类
子类的共同属性(包括方法)提取出来放到父类中,通过子类访问父类的属性
abstract class A{
public A(){}
public A(int count){
//调用本类的无参构造器
this();
}
}
class B extends A{
public B(){
//调用父类的无参构造器
super();
}
public B(int count){
//调用本类的无参构造器
this();
//super();这样是错误的
}
}
补充:super是指调用父类,this是指调用本类。加()是指调用构造器,加.属性名就可以直接调用
从最大的父类开始加载向后代加载
?->这时请大
家注意,要按照查找关系来返回信息(和方法的重写类似l;.l )
(1)首先看子类是否有该属性
(2)如果子类有这个属性,并且可以访问,则返回信息
(3)如果子类没有这个属性,就看父类有没有这个属性(如果父类有该属性,并且可以访问,就返回信息.·)
(4)如果父类没有就按照(3)的规则,继续找上级父类,直到Object