继承
- 子类可以直接将父类的操作继续使用,属于代码复用
- 子类可以继续扩充属于自己的标准。
继承的限制
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()不可能被同时调用,子类执行自己构造方法前,以前先执行父类构造,为父类初始化