以下の一連のクラスとインターフェースがコンパイルされます。しかし、次のクラスは、このコードの後にはありません。エラー+継承+インターフェース
public abstract class ClassA {
public void methodOne() {
System.out.println("Hello from methodOne.");
}
public int methodTwo(int a, int b) {
return a + b;
}
public abstract int methodThree(int a, int b);
}
public interface InterfaceA {
int methodOne(int a, int b);
}
public class ClassB extends ClassA {
public int methodOne(int a) {
return 5 * a;
}
public int methodTwo(int a, int b) {
return 2 * super.methodTwo(a, b);
}
public int methodThree(int a, int b) {
return a * b;
}
}
public class ClassC extends ClassB implements InterfaceA {
public int methodOne(int a, int b) {
return a % b;
}
public int methodThree(int a, int b) {
return a ‐ b;
}
public void methodFour(int a) {
System.out.println("Here is number: " + a);
}
}
public class ClassD extends ClassC {
public void methodFour(int a, int b) {
System.out.println("Here is the sum: " + (a + b));
}
}
次の出力では、コンパイル時にエラーが発生しますが、その理由は何ですか?あなたがこれを行うカントとき、たとえば、ClassA_Type bla = new ClassB()?
public class SomeClass {
public static void main(String[] args) {
ClassA oneA = new ClassB();
System.out.println(oneA.methodOne(5));
InterfaceA oneIA = new ClassD();
oneIA.methodFour(6, 7);
}
}
正確なエラーメッセージを追加することを検討してください。 – Berger
@Berger問題は、問題がSomeClassの出力を記述し、適切なところに「エラー」を書き込むように依頼された過去の割り当てにありました。 – mathStudent1936
"また、たとえばClassA_Type bla = new ClassB()のように正確にはどういう意味ですか? < - クラスAはあなたのケースでは抽象であり、インターフェースではありませんが、これはとにかく説明しなければなりません(同じ原則):[「インターフェースへプログラムする」とはどういう意味ですか?」(http://stackoverflow.com/questions/) 383947/what-does-it-mean-to-interface-to-interface) –