继承

  • 子类可以直接将父类的操作继续使用,属于代码复用
  • 子类可以继续扩充属于自己的标准。

继承的限制

  • Java不允许多继承(即一个子类不可以继承多个父类),但是允许多层继承,即 A extend B C extend B

  • 对应所用的私有操作属于隐式继承(即不能被直接使用),所有非私有操作属于显示继承

    如下代码:其中name属性声明为private,B类并没有写任何属性,但是调用b.getName()可以打印出bobo,说明B是继承了A的私有属性,但是不能通过b.name来直接访问

  1. class A{
  2. private String name;
  3. public void setName(String name){
  4. this.name = name;
  5. }
  6. public String getName(){
  7. return this.name;
  8. }
  9. }
  10. class B extends A{
  11. }
  12. public class TestExtend{
  13. public static void main(String[] arg){
  14. B b = new B();
  15. b.setName("bobo");
  16. System.out.println(b.getName());//结果:bobo
  17. }
  18. }
  • 子类调用构造前,一定会调用父类构造(类似现有父亲才有儿子),相对于子类构造而言,相当于默认在构造里面调用了super(),当父类没有无参构造方法是,就需要手动调用父类的有参构造方法
  • super()和this()不可能被同时调用,子类执行自己构造方法前,以前先执行父类构造,为父类初始化