public class A {
public A() {
System.out.println("1");
}
public void a() {
System.out.println("2");
}
}
public class I extends A {
public I() {
System.out.println("11");
super();
}
}
I i = new I();
i.a();
부모 클래스의 생성자 호출은 자식 클래스 생성자의 맨 첫 줄에서 불려야 한다.
따라서 에러가 발생한다.
public class A {
public A() {
System.out.println("1");
}
public void a() {
System.out.println("2");
}
}
public class C extends A {
public void a() {
System.out.println("3");
}
}
C c = new C();
c.a();
답 : 1,3
c에서 a와 같은 메서드인 a를 가지고 있다.
override 어노테이션은 필수가 아니라서 오류가 나지 않는다.
그럼에도 override 어노테이션을 사용하는 이유는
메소드 이름의 철자 실수나 파라미터 매칭의 어긋남 등을 확인할 수 있고,
override되었다는 것을 명확히 보여줌으로써 코드 가독성을 높인다.
출처: 코드잇