簡體   English   中英

具有接口的Java多態性

[英]Java Polymorphism With Interface

我正在參加AP Comp Sci,我們正在學習多態性和繼承。 我們的老師給了我們以下問題:

如果類C1和C2都實現了接口Cint,則該接口具有方法“ whichIsIt”,並且如果C1 c = new C1(),則返回Cint。 在程序的某一點執行,然后執行后續指令c.whichIsIt(); 將調用C1中定義的whichIsIt方法。

答案可能是錯誤的 但是,這對我來說毫無意義。 多態的全部要點是它使用動態綁定,並將使用在層次結構中最低的類中定義的方法。 這個問題的答案怎么可能是錯誤的?

Java對最終和重載方法具有早期綁定,而對重寫方法具有后期綁定。 因此,除非whichIsIt方法是最終方法或重載方法,否則答案應為true。 同樣,在java8接口之前,不允許使用方法實現。

Cint c = new C1();
c.whichIsIt() //Assuming C1 overrides whichIsIt method defined in Cint, 
              //then this will call C1.whichIsIt method

暫無
暫無

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

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