java语言基础|关于子类和父类的构造方法
2017-06-06 15:44
369 查看
子类会继承父类的构造方法
这里的输出为120 110
子类会先调用父类的构造方法,当然子类可以用super()来显示调用父类的构造方法,如果不写,默认调用父类无参数的构造方法。
等价于
但是如果父类只有有参数的构造方法在子类没有用super()显示调用构造方法,那么编译器会报错
需要引用父类才不会报错。
至于原因可能与程序的安全与接口有关,程序不应该给你一个不明确定义的方法,所以默认在子类前加载方法。
class testsuper { public testsuper() { System.out.println("120"); } } public class Test extends testsuper{ public Test() { System.out.println("110"); } public static void main(String[] args) { Test test=new Test(); } }
这里的输出为120 110
子类会先调用父类的构造方法,当然子类可以用super()来显示调用父类的构造方法,如果不写,默认调用父类无参数的构造方法。
等价于
public Test() { super(); System.out.println("110"); }
但是如果父类只有有参数的构造方法在子类没有用super()显示调用构造方法,那么编译器会报错
class testsuper { public testsuper(String s) { System.out.println("120"); } } public class Test extends testsuper{ public Test() { super("s"); System.out.println("110"); } public static void main(String[] args) { Test test=new Test(); } }
需要引用父类才不会报错。
至于原因可能与程序的安全与接口有关,程序不应该给你一个不明确定义的方法,所以默认在子类前加载方法。
相关文章推荐
- 关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:
- 关于JAVA中子类和父类的构造方法
- java中关于子类实例化时调用父类无参构造方法的问题
- 2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?
- 关于JAVA中子类和父类的构造方法
- java中子类调用父类的构造方法
- java基础:父类与子类之间变量和方法的调用
- java中 静态成员、实例成员、构造方法在子类和父类中的执行顺序
- java基础:父类与子类之间变量和方法的调用
- java基础:父类与子类之间变量和方法的调用
- Java里子类调用父类构造方法问题
- java中的继承(子类调用父类构造方法还不懂)
- java继承时,实例化子类,是否会默认调用父类构造方法
- java中子类与父类构造方法的问题
- 关于子类调用父类构造方法的研究
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- C++和JAVA中一些区别,包括指向子类的引用会调用谁的方法,子类构造函数自动调用父类构造函数时,父构造会调用的谁方法
- 黑马程序员--java中父类和子类都有构造方法时,子类对象的初始化过程
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- Java中子类调用父类构造方法的问题分析