私は Java を初めて使用し、継承の基礎となる基本概念を理解しています。スーパークラスによる参照について質問があります。スーパークラスから継承された、またはインターフェイスを使用して実装されたクラスのメソッドは、スーパークラス参照 (インターフェイスまたはクラス) を介して参照できます。拡張と実装の両方がクラスに関与している場合、どのように機能しますか?
class A {
void test() {
System.out.println("One");
}
}
interface J {
void first();
}
// This class object can referenced using A like A a = new B()
class B extends A {
// code
}
// This class object can referenced using J like J j = new B()
class B implements J {
// code
}
// my question is what happens in case of below which referencing for runtime polymorphism?
class B extends A implements J {
// code
}
コンパイルに失敗するもの:
Main.java:16: エラー: クラスが重複しています: B クラス B は J を実装します { ^ Main.java:21: エラー: 重複クラス: B クラス B を拡張し、A を実装して J { ^ 2 エラー