2017-09-12 44 views
-6
package finalpaperpractice; 
public class PolymorphicTest { 
    public void function(){ 
     System.out.println("1"); 
    } 
    public static void main (String [] args){ 
     Object obj [] = {new PolymorphicTest(), new A(), new B()}; 
     for (int i = 0; i < 3; i ++){ 
      obj[i].function(); // error on this line 
     } 
    } 
} 
class A{ 
    public void function(){ 
     System.out.println("2"); 
    } 
} 
class B{ 
    public void function(){ 
     System.out.println("3"); 
    } 
} 

我不知道爲什麼obj[i]無法找到function()。 我寫了一個覆蓋toString()的代碼,它完美地工作,但是這個代碼沒有被覆蓋。多態陣列不工作

+0

什麼是錯誤訊息?你可以把它添加到問題? – raina77ow

回答

2

因爲objObject類型和Object類沒有function方法聲明。

您可以使用function方法創建一個接口,並在任何需要function方法的所有類中實現此接口。

然後,

Object obj 

應該改變

<Your Interface> obj 
+0

那麼根據您的要求,調用'function()' –

+0

解決方案的解決方案會有所不同。 – Ravi

+0

我的解決方案是什麼 –