1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 子类调用父类的构造函数几种情况

子类调用父类的构造函数几种情况

时间:2022-03-01 04:24:56

相关推荐

子类调用父类的构造函数几种情况

1.1当父类中同时有无参和有参构造函数时,子类继承父类,调用子类的无参构造函数,这是无论写不写super();其结果都一样,都是先调用父类的无参构造,再调用子类的无参构造,代码如下

class Father{String s="aaaaaaaa";public Father(String s) {this.s = s;System.out.println(s+"我是father有参构造");}public Father() {System.out.println(s+"我是father无参构造");}}class Son extends Father{public Son() {//super();这里写不写super不影响结果System.out.println(s+"我是son无参构造");}

/*public Son(String s) {

super(s);

System.out.println(s+"我是son有参构造");;

}*/}public class Test1 {public static void main(String[] args) {Son s1=new Son();}}

输出结果:

aaaaaaaa我是father无参构造

aaaaaaaa我是son无参构造

1.2如果父类中并没有无参和有参的构造方法,系统会默认帮你创建一个无参构造方法,程序也会执行

输出结果:

aaaaaaaa我是son无参构造

1.3如果父类中存在有参构造方法,没有无参构造方法,这时系统不会帮你创建无参构造方法,程序会发生异常

输出结果:

Implicit super constructor Father() is undefined(父类的无参构造方法未定义)

2.1子类是有参构造时,

class Father{String s="aaaaaaaa";public Father(String s) {this.s = s;System.out.println(s+"我是father有参构造");}public Father() {System.out.println(s+"我是father无参构造");}}class Son extends Father{public Son() {//super();System.out.println(s+"我是son无参构造");}public Son(String s) {super(s);//有无super,区别System.out.println(s+"我是son有参构造");;}}public class Test1 {public static void main(String[] args) {Son s1=new Son("hello");}}

有super时调用父类有参构造,无super时,调用父类无参构造

console结果:

hello我是father有参构造

hello我是son有参构造

----------------------------------------

aaaaaaaa我是father无参构造

hello我是son有参构造

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。