创建子类对象时,子类一定会调用父类的无参构造方法吗?可以阻止吗?
public class TestExtend
{
public static void main(String args[]) {
Father f = new Father(1);
Son s = new Son(1);
}
}
class Father
{
public Father() {
System.out.println("爸爸的构造方法");
}
public Father(int a) {
System.out.println("爸爸的构造方法222");
}
}
class Son extends Father
{
public Son() {
System.out.println("儿子的构造方法");
}
public Son(int a) {
System.out.println("儿子的构造方法222");
}}
输出结果:
爸爸的构造方法222
爸爸的构造方法
儿子的构造方法222
public class TestExtend
{
public static void main(String args[]) {
Father f = new Father(1);
Son s = new Son(1);
}
}
class Father
{
public Father() {
System.out.println("爸爸的构造方法");
}
public Father(int a) {
System.out.println("爸爸的构造方法222");
}
}
class Son extends Father
{
public Son() {
System.out.println("儿子的构造方法");
}
public Son(int a) {
System.out.println("儿子的构造方法222");
}}
输出结果:
爸爸的构造方法222
爸爸的构造方法
儿子的构造方法222
父类的构造方法不能被子类继承。以下语句中MyException类继承了java.lang.Exception类。public class MyException extends Exception{} // MyException类只有一个隐含的默认构造方法尽管在Exception类中定义了如下形式的构造方法:public Exception(String msg)但MyException类不会继承以上Exception类的构造方法,因此以下代码是不合法的。//编译出错,MyException类不存在这样的构造方法Exception e=new MyException("Something is error"); 在子类的构造方法中,可以通过super语句调用父类的构造方法。
java的老祖宗就是Object类,什么类都是它的子类,它就有一个无参的构造器,就是用来被子类调用的.