JavaSE--重新学习_查漏补缺(3)--继承的细节_this和super关键字

一、 继承细节

  • 1、只能单继承类(接口和内部类可以解决单继承问题)
  • 2、可以多继承接口
  • 3、对父类方法的重写需要的修饰符是同级或以上的范围(如 父类public 子类也必须public了)

二、子类使用父类的成员方法、变量的限制

  • 1、如果子类和父类在同一个包下,那么对于父类的成员修饰符只要不是私有的private,那子类都可以使用。
  • 2、如果子类和父类不在同一个包内,那么子类只能使用父类的protect和public修饰的成员。

在这里插入图片描述

三、super关键字注意点

  • 在多层继承的关系中使用super,子类可以调用子类之上的所有父类层级。
    在这里插入图片描述

四、子类调用父类的构造器需注意点

在这里插入图片描述

  • 下图可以看到t2继承t1时,t1的构造函数时有参构造,t2这时无参构造方法写出来是会报错的。在重写父类有参构造,并通过super(参数)调用后,编译真确。
    *
    在这里插入图片描述
    原因:
    这个很容易理解 若是父类只有有参构造方法,即父类没有无参构造方法,子类继承父类,子类创建自己对象时,这时默认调用无参构造实例化已经不行了,因为父类无无参构造,子类也会相应无无参构造,所以需要在子类将父类的有参构成方法实现(因为这时jvm不会默认生成有参构造)。这里父子类有参构造类似于必须实现继承接口的方法。

五、this和spuer关键字

  • 共同点:在子类中,通过this或者super调用构造器,只能使用一个,因为都要占据第一行。
  • 不同点:this调用的属性和方法都从本子类出发,再上升到父类,super直接调用父类的属性和方法。
    在这里插入图片描述
发布了34 篇原创文章 · 获赞 1 · 访问量 529

猜你喜欢

转载自blog.csdn.net/weixin_44185736/article/details/105014205