2017-09-12 14 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

私の場合の解決策は何ですか –

関連する問題