Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 반복문
- 상속
- After effects
- expand
- 멤버변수
- Overload
- 배열
- 변수
- 메서드
- length
- switch문
- Interface
- illustrator
- for문
- Java
- private
- 파라미터
- do while문
- Photoshop
- 형변환
- if문
- symbol
- Override
- 조건문
- static
- while문
- Singleton
- super
- 클래스
- 생성자
Archives
- Today
- Total
Ms'Note
Super 키워드의 사용 본문
Super 키워드
- 클래스의 상속관계에서 자식 클래스가 부모 클래스를 가리키는 예약어
사용 방법
- 멤버변수 이름 앞에 명시
- 부모 클래스의 멤버변수를 의미한다. 하지만 부모 클래스의 멤버변수는 이미 모두 상속되어 있기 때문에
이 경우에는 this 키워드를 사용하는 것과 동일한 결과이기에 잘 사용하지 않는다.
- 부모 클래스의 멤버변수를 의미한다. 하지만 부모 클래스의 멤버변수는 이미 모두 상속되어 있기 때문에
- 메서드 이름 앞에 명시
- 부모 클래스의 메서드를 의미한다.
- 재정의 되지 않은 메서드 > 이미 상속되어 있기 때문에 this 키워드를 사용하는 것과 동일한 결과를 갖는다.
- 재정의 된 메서드 > Override된 메서드 이름 앞에 사용하게 되면 재정의 되기 이전의 원본 메서드를 의미한다.
- 키워드 자체를 메서드처럼 사용한다.
- 부모 클래스의 생성자를 의미한다.
메서드 이름 앞에 명시하는 경우에 대한 실행흐름
- Korean 클래스에 의해 say() 메서드가 Override된 경우
상속을 통한 메서드의 기능 확장처리
- Hello 클래스가 Korean에 상속되고, Korean 클래스가 say() 메서드를 Override 처리하게 되면
Korean 클래스의 객체는 더 이상 부모의 say() 메서드에 접근할 수 없게 된다.
- 만약 부모 클래스가 가지고 있는 say()메서드에 추가적인 기능을 구현하고자 한다면
아래와 같이 부모의 코드를 그대로 복사해서 사용해야 할 것이다.
- super 키워드는 부모 클래스의 메서드를 호출하는 기능을 가지고 있기 때문에, Override된 자식 클래스의
메서드에서 super 키워드를 사용하면, 재정의 되기 이전의 부모 클래스에 대한 메서드를 호출할 수 있다.
'IT > JAVA' 카테고리의 다른 글
@Override 옵션 (0) | 2020.08.23 |
---|---|
상속 관계에서의 생성자 처리 (0) | 2020.08.16 |
다형성을 구현하기 위한 Override (0) | 2020.08.16 |
상속의 활용 (0) | 2020.08.16 |
상속 이해하기 (0) | 2020.08.16 |
Comments