public class A extends B implements C {
}
クラスBとインターフェイスCは同じメンバ関数名(同じ署名ではない)を持っています。 このコードはコンパイルできません。これをどうすれば解決できますか?名前の競合:継承されたクラスとインターフェイスの同じメソッド名
public class A extends B implements C {
}
クラスBとインターフェイスCは同じメンバ関数名(同じ署名ではない)を持っています。 このコードはコンパイルできません。これをどうすれば解決できますか?名前の競合:継承されたクラスとインターフェイスの同じメソッド名
継承クラスはインターフェイスメソッドを実装しているので、エラーは発生しません。実際には、両方が同じ名前を持つことは本当にインターフェースを実装するためのアイデアです...
はここでチェックリストです:
override
とマークする必要があります。署名に関しても同じ規則が適用されます。final
と宣言してはいけません。クラスに同じメソッド名ANDシグネチャがない場合、インターフェイスが正しく実装されていません。それはそれの長いと短いです。実装を削除するか、メソッドのシグネチャを変更して修正することができます。
はい、メソッドの名前は同じですが、同じシグネチャはありません。 – NightDreaming
それであなたの問題を解決する方法です:) – weltraumpirat
しかし、BとCはライブラリコードです、私はそれを変更することはできません – NightDreaming