Ms'Note

Super 키워드의 사용 본문

IT/JAVA

Super 키워드의 사용

Jelly_B 2020. 8. 16. 14:55

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