JAVA继承中的构造器调用
2017-05-06 22:55
190 查看
关于继承中的构造器调用和调用顺序,做了个小测试,如下:
子类创建实例时的构造函数调用顺序:
、父类的无参构造器
、子类的有参构造器
、父类的有参构造器
若子类没有显示调用父类构造器,当子类创建实例时 ,会调用父类的无参构造器,若父类没有无参构造器,则会报错。
class People { String name; //2,第二步,调用此无参构造器 public People() { System.out.println("、父类的无参构造器"); } //5,调用此有参构造器 public People(String name) { System.out.println("、父类的有参构造器"); this.name = name; } } class Child extends People { People father; public Child() { System.out.println("、子类的无参构造器"); } //3,创建使历史传递了参数"mike",所以第三步会调用子类有参构造器 public Child(String name) { System.out.println("、子类的有参构造器"); this.name = name; //4,此处创建了People的实例并传递了参数,所以会调用父类有参构造器 father = new People(name + ":F"); } public static void main(String[] args) { System.out.println("子类创建实例时的构造函数调用顺序:"); new Child("mike");//1,创建子类实例,由于Child类没有显示调用People的构造器,所以默认调用People的无参构造器 // new Child();//不传递参数,则第一步调用父类无参构造器,然后调用自身的无参构造器。 } }当前状态下执行main方法,输出如下内容:
子类创建实例时的构造函数调用顺序:
、父类的无参构造器
、子类的有参构造器
、父类的有参构造器
若子类没有显示调用父类构造器,当子类创建实例时 ,会调用父类的无参构造器,若父类没有无参构造器,则会报错。
相关文章推荐
- java学习之旅41--面向对象_14_继承_super_构造器的调用_继承的内存分析(非常重要)
- java之子类继承抽象类,子类构造器调用抽象类构造器问题
- Java在继承中构造器的调用顺序
- java 关于继承中构造器和方法的调用
- Java 继承与多态(三)—构造器的调用顺序
- java继承中的构造器调用
- think in java之构造器的真正调用顺序
- Java继承机制中,关于构造器的重写
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的研究
- java的构造器调用
- JNI学习之---用jni API 访问java对象的属性,方法,调用构造器。
- asp.net MVC中怎样让LINQ Designer自动生成的类从别的类继承并调用其基类构造器?
- asp.net MVC中怎样让LINQ Designer自动生成的类从别的类继承并调用其基类构造器?
- Java继承时构造函数的调用
- think in java之构造器的真正调用顺序
- JAVA笔试题总结3:父类构造器调用被子类重写方法
- Java静态代码块、构造器、静态主方法以及继承后父类代码块的运行顺序
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的探讨
- Java中的构造器(构造方法)的调用
- asp.net MVC中怎样让LINQ Designer自动生成的类从别的类继承并调用其基类构造器?