public class A {public static void main(String[] args) { B33 b=new B33();}}class B{ public B(){ System.out.println("我是B"); }}class B2 extends B{ public B2(){ System.out.println("我是B2"); }}class B33 extends B2{ public B33(){ System.out.println("我是B33"); }}知道答案的各位能不能告訴我下怎樣才能調用子類的無參構造而不會調用父類的
3 回答
已采納

堯叔
TA貢獻77條經驗 獲得超201個贊
想法很有探索精神,但是很抱歉,據我所知是不可以的。
一定會調用,原因是這樣的。
因為子類繼承了父類,那么就默認的含有父類的公共成員方法和公共成員變量,這些方法和變量在子類里不再重復聲明。如果你初始化子類的時候,不初始化父類,那么你通過子類調用父類方法或變量的時候會出現什么情況呢?當然就是拋異常阿!所以,Java虛擬機會在你初始化子類的時候默認的初始化子類的父類。而且是一層一層的往上遞進!
你想這樣調等價于繼承了父類的財產又要斷絕父子關系,合適嗎。
添加回答
舉報
0/150
提交
取消