继承
- 子类可以直接将父类的操作继续使用,属于代码复用
- 子类可以继续扩充属于自己的标准。
继承的限制
Java不允许多继承(即一个子类不可以继承多个父类),但是允许多层继承,即 A extend B C extend B
对应所用的私有操作属于隐式继承(即不能被直接使用),所有非私有操作属于显示继承
如下代码:其中name属性声明为private,B类并没有写任何属性,但是调用b.getName()可以打印出bobo,说明B是继承了A的私有属性,但是不能通过b.name来直接访问
class A{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
class B extends A{
}
public class TestExtend{
public static void main(String[] arg){
B b = new B();
b.setName("bobo");
System.out.println(b.getName());//结果:bobo
}
}
- 子类调用构造前,一定会调用父类构造(类似现有父亲才有儿子),相对于子类构造而言,相当于默认在构造里面调用了super(),当父类没有无参构造方法是,就需要手动调用父类的有参构造方法
- super()和this()不可能被同时调用,子类执行自己构造方法前,以前先执行父类构造,为父类初始化