第十三题

子类要调用继承自父类的方法,必须使用super关键字。

A正确
B错误

懵逼树上懵逼果,懵逼树下你和我,首先来一段代码

如果子类没有重写父类的方法,调用父类的方法用不用super关键字结果都一样。 如果子类重写父类的方法,调用父类的方法必须用super关键字。 class TestA{public void a(){System.out.println("this is TestA a method");}public void b(){System.out.println("this is TestA b method");}
}public class TestC extends TestA{//重写父类b方法public void b(){System.out.println("this is TestC b method");}public void aa(){super.a();a();}public void bb(){super.b();b();}public static void main(String[] args) {TestC tc = new TestC();tc.aa();tc.bb();}
}

super关键字表示对某个类的父类的引用。一般而言,super有两种通用形式:第一种用来访问被子类的成员隐藏的父类成员;第二种则是可以调用父类的构造函数。接下来说一下两种使用形式的方法和规则。

第一种:

如子类和父类有同名的成员变量或方法,则父类的成员将会被覆盖,此时可用下面的方式来引用父类的成员:

super.<成员变量名>
    super.<成员方法名>

在Java语言中,用过继承关系实现对成员的访问是按照最近匹配原则进行的,规则如下:

(1)在子类中访问成员变量和方法时将优先查找是否在本类中已经定义,如果该成员在本类中存在,则使用本类的,否则,按照继承层次的顺序往父类查找,如果未找到,继续逐层向上到其祖先类查找。

(2)super特指访问父类的成员,使用super首先到直接父类查找匹配成员,如果未找到,再逐层向上到祖先类查找。

第二种:

子类可以通过super关键字调用父类中定义的构造方法,格式如下:

super(调用参数列表)

其中调用参数列表必须和父类的某个构造函数方法的参数列表完全匹配。

子类与其直接父类之间的构造方法存在约束关系,有以下几条重要原则:

(1)按继承关系,构造方法是从顶向下进行调用的。

(2)如果子类没有构造方法,则它默认调用父类无参的构造方法,如果父类中没有无参数的构造方法,则将产生错误。

(3)如果子类有构造方法,那么创建子类的对象时,先执行父类的构造方法,再执行子类的构造方法。

(4)如果子类有构造方法,但子类的构造方法中没有super关键字,则系统默认执行该构造方法时会产生super()代码,即该构造方法会调用父类无参数的构造方法。

(5)对于父类中包含有参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来引用,而且必须是子类构造函数方法中的第一条语句。

(6)Java语言中规定当一个类中含有一个或多个有参构造方法,系统不提供默认的构造方法(即不含参数的构造方法),所以当父类中定义了多个有参数构造方法时,应考虑写一个无参数的构造方法,以防子类省略super关键字时出现错误。
所以答案为B,是错误的。

文章仅个人理解,来在各大网站。如有不合理之处,欢迎吐槽。

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

第十三题:子类要调用继承自父类的方法,必须使用super关键字。相关推荐

  1. Java基础【之】面向对象编程(封装、继承(extends、方法重写、super)、多态(动态绑定、重载/重写)、代码实现)

    Java基础[之]面向对象编程(封装.继承.多态.代码实现) 1.封装 2.继承 2.1.extends 2.2.方法重写 2.3.super 3.多态 3.1.对象的多态.方法的多态 3.2.动态绑 ...

  2. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

  3. [转载] JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍

    参考链接: 可以重写Java中的私有方法吗 JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中  方法外 调 ...

  4. Java-基础---继承,方法重写,super关键字

    JAVA知识分享网站: Java知识分享网-免费Java资源下载 学累了,可以看看. 继承 extends关键字:继承可以让一个类天然的拥有另一个类的属性和方法,而你只需要做的是加上一个extends ...

  5. php 继承内核中的基类,php – 从基类调用继承类的父方法

    以下示例不起作用,因为在类A中调用parent时,php会查找类A的父类,但它不存在.我宁愿这一行在B类中调用Test(). 这可能吗? (我知道这似乎是一个愚蠢的例子,但它有一个实际应用) abst ...

  6. 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )

    文章目录 I . 子类调用父类总结 II . 子类调用父类方法 ( super ) III . 子类内部类调用父类方法 ( super@ ) IV . 子类选择调用不同的 父类 / 接口方法 ( su ...

  7. 继承实现的原理、子类中调用父类的方法、封装

    一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...

  8. Day19:继承实现的原理、子类中调用父类的方法、封装

    一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...

  9. 【Python】继承、父类、子类、方法重写、子类调用父类方法、super()函数、多继承

    Python继承 2021/6/21 周一 学习内容:父类.子类.方法重写.子类调用父类方法.super()函数.多继承 Python入门,主要是看 菜鸟教程.w3school 网站,以及电子工业出版 ...

最新文章

  1. Android Edittext digits 属性限制输入的内容
  2. 简述Docker过去6个月的变化
  3. 排除字段重复行的SQL
  4. java实现rsa欧几里得算法求d_RSA 加密算法的 java 实现
  5. 不能修改“System Roots”钥匙串
  6. 悲观锁定时如何避免可怕的死锁-以及Java 8的一些用法!
  7. 2019死磕java面试题_死磕 java同步系列之开篇
  8. CentOS安装MySQL问题汇总
  9. python精通 epub_跟老齐学Python:从入门到精通[azw3+epub+mobi][8.59MB]
  10. 原神手游显示无法连接服务器,原神手游进不去怎么办 游戏无法登录解决方法...
  11. php分页类 seo,laravel 分页seo浅谈
  12. 统计学复习笔记(三)—— 置信区间(总体均值/比例/方差,总体均值之差/比例之差/方差之比)
  13. CCNA(七)思科路由器基本配置
  14. 怎么样优化可以避免百度的冰桶算法?
  15. ◮OpenGL-混合
  16. 随机算法 之随机数的产生
  17. Pytorch阅读文档之flatten函数
  18. UltraEdit15.10的注册码
  19. 201571030130/201571030124《小学四则运算练习软件软件需求说明》结对项目报告
  20. http://wwv.xiaonei.com/xn2.do?iid=0ae63bab-10a4-4d

热门文章

  1. 初识JavaScript———JavaScript注意事项(1)
  2. hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)
  3. Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案
  4. configure: error: Curl library not foun
  5. [HTML5]移动Web应用程序开发 HTML5篇 (四) 多媒体API
  6. Acess 数据库 查询数据表结构等问题小记
  7. 【STC15库函数上手笔记】7、PCA与PWM
  8. Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
  9. MyBatis 实践
  10. vue旋转图片功能,旋转放大图片功能;vue旋转放大div元素