FlowerBombs

오버라이드 본문

JAVA

오버라이드

CitronLemon 2019. 2. 28. 00:52

다형성 (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



'JAVA' 카테고리의 다른 글

객체 형변환  (0) 2019.02.28
오버로드  (0) 2019.02.28
상속성  (0) 2019.02.26
은닉성  (0) 2019.02.26
클래스/객체/생성자  (0) 2019.02.26
Comments