构造器内部的多态方法的行为

本文通过一个具体的Java代码示例,深入探讨了在构造器内部使用多态方法时可能出现的问题。特别是当父类构造器调用了一个抽象方法,而该方法在子类中被重写的情况下,由于对象尚未完全构造完成,可能会导致预期之外的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package Interface;

public class Test_exercise3 {
public static void main(String[] args){
PrintClass pc = new PrintClass();
pc.print();
}
}

abstract class Foundation{
abstract void print();
public Foundation(){
print();
}
}

class PrintClass extends Foundation{
int i = 90;
public void print(){System.out.println("Int:  " + i);}
}

//这是多态这一章在《java编程思想》P162处的关于-构造器内部的多态方法的行为-要调用构造器内部的动态方法就会调用到那个方法被覆盖之后的定义
//因为覆盖之后的方法在未被完全构造之前就会被调用,所以会出现一些隐藏的错误,就如同此例中一样,i未被定义之前是java强制转成的0

// Output:
// Int:  0
// Int:  90

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值