尽管子类可以集成父类所有的成员和方法,但是不能集成构造方法。
第一种情况,如果父类A中定义有public A(){...}这样的构造方法,那就不会出错;如果父类A中没有无参数构造方法,B的编译会出错
第二种情况,一定会出错,因为子类B中并没有B(参数1,参数2,参数3)这样的构造方法,构造方法是不可以继承的。
对于父类的构造方法,子类只可以在自己的构造方法中调用,而不能继承。有下面2种方法调用父类的构造方法:
1.在子类的构造方法中使用super关键字;
2.如果子类的构造方法没有super或者this调用,编译器会插入一个对父类无参构造方法(缺省构造方法)的隐含调用super();需要注意的是:如果父类定义了构造方法,但是没有提供无参数的构造方法,子类的编译将产生错误。
参考资料:Sun Services
第一种情况,如果父类A中定义有public A(){...}这样的构造方法,那就不会出错;如果父类A中没有无参数构造方法,B的编译会出错
第二种情况,一定会出错,因为子类B中并没有B(参数1,参数2,参数3)这样的构造方法,构造方法是不可以继承的。
对于父类的构造方法,子类只可以在自己的构造方法中调用,而不能继承。有下面2种方法调用父类的构造方法:
1.在子类的构造方法中使用super关键字;
2.如果子类的构造方法没有super或者this调用,编译器会插入一个对父类无参构造方法(缺省构造方法)的隐含调用super();需要注意的是:如果父类定义了构造方法,但是没有提供无参数的构造方法,子类的编译将产生错误。
参考资料:Sun Services
![](https://i-blog.csdnimg.cn/blog_migrate/7a9f8c2f833206445a63e9b8dc5b1286.gif)