做网站定金是多少钱,正规app开发价格表,渠道推广费用咨询,网页设计网站名称第十三题
子类要调用继承自父类的方法#xff0c;必须使用super关键字。
A正确
B错误
懵逼树上懵逼果#xff0c;懵逼树下你和我#xff0c;首先来一段代码
如果子类没有重写父类的方法#xff0c;调用父类的方法用不用super关键字结果都一样。 如果子类重写父类的方法…第十三题
子类要调用继承自父类的方法必须使用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在子类中访问成员变量和方法时将优先查找是否在本类中已经定义如果该成员在本类中存在则使用本类的否则按照继承层次的顺序往父类查找如果未找到继续逐层向上到其祖先类查找。
2super特指访问父类的成员使用super首先到直接父类查找匹配成员如果未找到再逐层向上到祖先类查找。
第二种
子类可以通过super关键字调用父类中定义的构造方法格式如下
super(调用参数列表)
其中调用参数列表必须和父类的某个构造函数方法的参数列表完全匹配。
子类与其直接父类之间的构造方法存在约束关系有以下几条重要原则
1按继承关系构造方法是从顶向下进行调用的。
2如果子类没有构造方法则它默认调用父类无参的构造方法如果父类中没有无参数的构造方法则将产生错误。
3如果子类有构造方法那么创建子类的对象时先执行父类的构造方法再执行子类的构造方法。
4如果子类有构造方法但子类的构造方法中没有super关键字则系统默认执行该构造方法时会产生super()代码即该构造方法会调用父类无参数的构造方法。
5对于父类中包含有参数的构造方法子类可以通过在自己的构造方法中使用super关键字来引用而且必须是子类构造函数方法中的第一条语句。
6Java语言中规定当一个类中含有一个或多个有参构造方法系统不提供默认的构造方法即不含参数的构造方法所以当父类中定义了多个有参数构造方法时应考虑写一个无参数的构造方法以防子类省略super关键字时出现错误。 所以答案为B是错误的。
文章仅个人理解来在各大网站。如有不合理之处欢迎吐槽。
阅读目录置顶)(长期更新计算机领域知识
阅读目录置顶)(长期更新计算机领域知识
阅读目录置顶)(长期科技领域知识
歌谣带你看java面试题