다음 일련의 클래스와 인터페이스가 컴파일됩니다. 그러나이 코드 이후의 다음 클래스는 그렇지 않습니다.오류 + 상속 + 인터페이스
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가 추상적이기 때문에 예를 들어, 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의 결과를 명시하고 적절한 경우 "error"를 작성하도록 요청했습니다. – mathStudent1936
"또한 ClassA_Type bla = new ClassB()와 같은 경우 정확히 무엇을 의미합니까?" <- 클래스 A는 귀하의 경우 추상적이지만 인터페이스는 아니지만 어쨌든 설명해야합니다 (동일한 원칙) : [ "인터페이스에 프로그램"한다는 것은 무엇을 의미합니까?] (http://stackoverflow.com/questions/) 383947/what-does-it-mean-to-program-to-an-interface) –