FlowerBombs
오버라이드 본문
다형성 (1)
오버라이드
자식 클래스가 부모클래스에 동일한 이름의 메서드를 정의한 경우 부모 클래스의 기능은 자식에게 가려진다.
즉, 부모의 기능을 재정의 한다. (기능의 변경)
1 2 3 4 5 6 7 8 9 | public class Parent { public void foo() {...} public bar(){...} } public class Child extends Parent { // Child의 객체를 통해서 bar를 호출한 경우 부모의 기능은 // 사용되지 않는다. public void bar(){...} } | cs |
super 키워드
부모의 기능을 변경(오버라이드)하는 과정에서 부모의 원래 기능을 보전해야 할 필요가 있는 경우 부모의 기능을 호출하기 위해서 사용되는 예약어.
1 2 3 4 5 6 7 8 9 | public class Parent { public void bar() {...} } public class Child extends Parent { public void bar() { super.bar(); // <-- 부모의 ... // <-- 부모의 기능을 확장하는 ?? } } | cs |
상속관계의 생성자.
생성자가 정의된 클래스를 상속받는 경우(부모가 생성자를 갖는 경우) 에는 자식 클래스의 생성자를 통해서 부모 생성자를 강제로 호출해야 한다.
1 2 3 4 5 6 7 8 9 10 | public class Parent { public Parent(int a){...} } public class Child extends Parent { // 자신의 생성자를 통해서 부모 생성자가 요구하는 파라미터를 간접적으로 전달 public child (int a ){ super(a); // <ㅡㅡ 부모의 생성자를 의미 } } | cs |
Comments