[英]How to find out the proper overridden method in Eclipse
我有一個接口I1
,它定義了方法M1
。 另外兩個類C1
和C2
正在實現I1
並且重寫M1
。
在另一個類C3
我引用了M1
。 現在我將如何理解M1
是指C1_M1
還是C2_M1
?
PS
我可以在調試代碼時找到它。 但是我正在尋找一些捷徑而不執行它。
它是運行時多態性,因此您只能在運行時理解它。
如果您知道程序的輸入內容,那么您可以了解哪個類實例引用。
interface A{
}
class B implements A{
}
class C implements A{
}
class Main{
public static void main(String args[]){
// input
Object o = new B(); // just assume your logic give you object B.
if(o instanceof B){
B b = (B) o;
// invoke methods
}else if(o instanceof C){
C c = (C) o;
// invoke methods
}
}
}
在上面的代碼中,您能夠理解將調用B
類方法。
總而言之-您必須了解您的代碼,識別輸入,然后才能了解在運行時將調用哪個類。 否則,調試是最佳做法。
如果您以這種方式創建對象
I1 i=new c1();
然后i.m1()
將調用class c1
m1方法
如果
I1 i=new c2();
然后i.m1()
將調用class c2
m1方法
如果您不知道如何創建對象,而只有引用,那么很抱歉,您只能在運行時找到它,因為它是運行時多態性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.