2012-04-13 13 views
4

「クラスは<?オブジェクトを拡張します>」 "" ClassOfRain "に? はいの場合は、どうやったらいいですか?あなたの読書のためのJavaメソッドのオーバーライド私はメソッドをオーバーライドしようとすると、私は、私のコードは、次のされているJavaとの問題を抱えて

ありがとう!ことはできません

+1

クラスカントーこのような何かを行うことができますか?オブジェクトを拡張する>すべてのJavaクラスがオブジェクトを拡張するので、実際に意味をなさない... – MarioDS

答えて

5

私はあなたが少し混乱していると思います。あなたが言おうとしていないよろしいです:

public abstract class CustomAdapter<T extends Object> { 
    public abstract Boolean addItem(T aObject); 
} 

public class RainAdapter extends CustomAdapter<Rain> { 
    @Override 
    public Boolean addItem(Rain aRainInfo) { 
     // do something 
     return true; 
    } 
} 

をあなたのクラス構造体の私の解釈では、あなたは、一般的なaddItem方法をしようとするので、実際のクラスオブジェクトの周りに渡すと、役に立たないされています。抽象/インターフェイスメソッドを実装および/または上書きするとき

+0

あなたの答えに感謝! –

0

。メソッドオーバーライドとは、まったく同じメソッドヘッダーを配置することを意味します。変更できるのは、指定されたパラメータの名前だけです。

0

Class<Rain.class>Rainクラスの反射を開催します。あなたがClass<? extends Object>を使用する必要がありますので、オーバーライドされたメソッドは、同じ仮パラメータを持っている必要がありますので、しかし、これは、動作しません。

0

メソッドのシグネチャが一致している必要があります...あなたは、<

public abstract class CustomAdapter{ 
    public abstract Boolean addItem(Object o); 
} 

public class RainAdapter extends CustomAdapter { 

    public Boolean addItem(Object o){ 
     if (o.getClassName().equals("ClassOfRain")){ 
      return this.addItem((ClassOfRain) o); 
     } 
     return false; 
    } 
    private Boolean addItem(ClassOfRain aRainInfo) { 
     // do something 
     return true; 
    } 
} 
関連する問題