Java面向对象三大特征之继承(二)

在之前的文章,我们分别介绍了类与对象面向对象三大特征之一封装、以及上一文大体讲完了继承。这一篇文章我们接着补充继承的知识点和特殊关键字。


子类的构造方法

注意子类不会继承父类的构造方法。
(上一文讲到子类继承父类,除了构造方法的部分,剩下的都会继承。)

下面讲述建立一个子类对象时,构造方法的执行过程。

执行构造方法

  1. 先有父再有子,即构造子类对象时,先执行父类的构造方法,再执行子类的构造方法。
  2. 子类对象可分为两部分,继承父类的部分子类拓展添加的部分 。先执行父类构造方法构造继承部分,再执行子类构造方法构造拓展部分,实现完整。

注意

  1. 若父类显式定义无参或者默认的构造方法,在子类构造方法第一行默认有隐含的super()调用,即调用基类的构造方法。
  2. 父类构造方法是带有参数的,此时需要用户为子类显式定义的构造方法,并在子类构造方法中选择合适的父类构造方法调用,否则编译失败。
  3. 在子类的构造方法中,super(…)调用父类构造时,必须是子类构造方法中的第一条语句。(毕竟要先执行父类构造方法,再执行子类)
  4. super(…)只能在子类构造中出现一次,并且不能和this同时出现。

super 关键字

  1. super关键字的作用访问父类中的成员变量和方法。
  2. 使用情况:出现子类与父类存在同名的成员时,若想在子类方法中访问父类成员,就可以使用super关键字。
  3. 使用范围:在子类的方法中,并且是非静态的方法
  4. 注意:不要以为把super误以为是父类对象。在创建子类对象时, 不会创建父类对象. 只会将父类中的信息加载到子类对象中存储.
  5. 使用形式:
    1. super.成员变量名 来 引用父类成员变量。
    2. super.方法名(参数列表) 访问 父类的方法。
    3. super.构造方法(参数列表) 访问 父类构造方法。

this关键字:对类的当前实例的引用,用于访问当前对象的实例变量、调用当前对象的方法,以及在构造方法中调用其他重载的构造方法

super与this的共同点

  1. 都是Java的关键字
  2. 只能在类的非静态方法中使用,用来访问非静态成员方法和字段
  3. 在构造方法中使用时,必须是构造方法中的第一条语句,并且不能同时存在

super与this的不同点

  1. this是对当前对象的引用,当前对象是指调用实例方法的对象。
  2. super是子类对父类继承下来的部分成员的引用。
  3. 在非静态成员方法中,this用来访问本类的方法和属性,super用来访问父类的方法与属性
  4. 在构造方法中:this(…)用来调用本类的构造方法,super(…)用来调用父类的构造方法,两种调用不能同时在构造方法中出现
  5. 构造方法中一定会存在super(…)的调用,用户没有写编译器也会增加,而this(…)不写则没有

final关键字

final可以修饰:变量 、 成员方法 和 类

  1. 修饰变量和字段时,表示为常量(无法修改)
  2. 修饰类,表示该类无法被修饰
  3. 修饰方法,表示该方法无法被重写

protected关键字

  1. 成员可见性:被protected关键字修饰的成员可以被同一包内的其他类访问,以及继承该类的子类访问。
  2. 访问权限范围:同一个包内的不同类,以及继承该类的子类(子类无所谓是否在同一个包中)。

下面是《Java面向对象三大特征》这几篇文章的参考链接:
(1) (2) (3) (4) (5)
(6) (7) (8) (9) (10)
(11) (12) (13) (14)

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值