簡體   English   中英

關於在Java中調用子類方法

[英]About calling subclass methods in Java

下面的代碼來自教科書:

CommissionEmployee3 commissionEmployee = new CommissionEmployee3(
"Sue", "Jones", "222-22-2222", 10000, .06 );

BasePlusCommissionEmployee4 basePlusCommissionEmployee =
new BasePlusCommissionEmployee4(
"Bob", "Lewis", "333-33-3333", 5000, .04, 300 );

System.out.printf( "%s %s:\n\n%s\n\n",
"Call CommissionEmployee3's toString with superclass reference ",
"to superclass object", commissionEmployee.toString() );

System.out.printf( "%s %s:\n\n%s\n\n",
"Call BasePlusCommissionEmployee4's toString with subclass",
"reference to subclass object",
basePlusCommissionEmployee.toString() );

CommissionEmployee3 commissionEmployee2 =
basePlusCommissionEmployee;

System.out.printf( "%s %s:\n\n%s\n",
"Call BasePlusCommissionEmployee4's toString with superclass",
"reference to subclass object", commissionEmployee2.toString() );

我想問為什么它可以使用“ commissionEmployee2.toString()”?

編譯器不會出錯嗎?

如果該類沒有該方法,則會發生編譯器錯誤。 但是commissionEmployee2使用的是超級類方法里面的Object類。

toString()方法屬於Object類,它是所有Java類的超類,因此沒有錯誤。

如果您在類中重寫它,它將執行該重寫的實現,否則將執行Object類的默認實現。

toString()方法在Object類中定義,Object類是所有Java類的超類。 您可以根據需要在類中重寫,否則Object類將提供默認實現。

如何使用toString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM