簡體   English   中英

如何在Eclipse中找出正確的重寫方法

[英]How to find out the proper overridden method in Eclipse

我有一個接口I1 ,它定義了方法M1 另外兩個類C1C2正在實現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.

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