父类的构造方法

子类对象构造时,首先要构造父类的对象,此时需要调用父类的构造方法。
1、如果父类有默认的构造方法,构造是没有问题的

public class D {
private int i;

public D(){}
}

public class D {
private int i;
}

public class E extends D {
private int j;

public E(int j) {
System.out.println("class E constructing...");
this.j = j;
}

public static void main(String[] args){
new E(2);
System.out.println("OK!");
}
}

结果

class E constructing...
OK!



2、如果父类没有默认构造方法,子类只能在自己的每一个构造方法的第一句调用父类的某一个构造方法来构造父类对象。

// D.java
public class D {
private int i;

{System.out.println("class D initializing...");}

public D(int i) {
System.out.println("class Di constructing...");
this.i = i;
}

public D(String s){
System.out.println("class Ds constructing...");
}
}

// E.java
public class E extends D {
private int j;

{System.out.println("class E initializing...");}

public E(int j) {
super(j);
System.out.println("class Ei constructing...");
this.j = j;
}

public E(String s){
super(s);
System.out.println("class Es constructing...");
}

//public E(int i, int j){} 这样是不行的,VM不知道该如何构造D的对象

public static void main(String[] args){
new E(2);
System.out.println();
new E("str");
System.out.println("OK!");
}
}

输出:

class D initialization...
class Di constructing...
class E initialization...
class Ei constructing...

class D initialization...
class Ds constructing...
class E initialization...
class Es constructing...
OK!
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值