java 第33节 实现继承
Posted 岑亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 第33节 实现继承相关的知识,希望对你有一定的参考价值。
2016-06-29
实现继承
super();
在调用子类构造器时,如果没有显式写出super,那么编译器会默认加上super()无参构造器。
如果想调用父类有参构造器,那么必须显式调用,编译器不会默认加上的。
创建子类对象的过程,就是从底层基类开始往上,一层层地调用构造方法。
super() super(参数)都必须放在方法的第一个语句中。
package com.java1995; public class A { A(){ System.out.println("调用A的无参构造方法"); } A(int i){ System.out.println("调用A的有参构造方法"); } } class B extends A{ B(){ System.out.println("调用B的无参构造方法"); } B(int i){ /** * super()、super(参数)都必须放在方法的第1个语句中 * 显式调用、父类有参构造器 */ super(i); System.out.println("调用B的有参构造方法"); } } class C extends B{ C(){ /** * super(); * 在调用子类的构造器时, * 如果没有显式写出super(), * 编译器默认调用父类的无参构造器; * 如果想调用父类的有参构造器,必须显式调用。 */ super(); System.out.println("调用C的无参构造方法"); } C(int i){ /** * 显式调用、父类有参构造器 */ super(i); System.out.println("调用C的有参构造方法"); } }
package com.java1995; public class Test { public static void main(String[] args) { //C-->B-->A //C c=new C(); C c=new C(1); } }
【参考资料】
以上是关于java 第33节 实现继承的主要内容,如果未能解决你的问题,请参考以下文章
阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第3节 接口_14_接口之间的多继承
阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_9_接口的私有方法定义