super & super()

SJW·2023년 6월 9일
0
  • super 키워드는 상위 클래스의 객체, super()는 상위 클래스의 생성자를 호출하는 것을 의미
  • 이 둘은 공통적으로 상위 클래스의 존재를 상정하며 상속 관계를 전제

super




  • 상위 클래스의 인스턴스 변수와 하위 클래스의 인스턴스 변수명이 일치하는 문제가 발생한다.
    --> 이런 경우, 두 개의 같은 이름의 변수를 구분하기 위한 방법이 바로 super 키워드 이다. super 키워드를 사용하면 상위 클래스의 멤버값을 사용할 수 있다.

첫 번째 count는 자기에게서 가장 가까운 count 변수 15를 출력,
두 번째 카운트 또한 자신이 속한 클래스의 멤버를 나타내므로 15를 출력.
마지막으로 super 키워드를 사용하여 호출한 count는 상위 클래스의 변수를 참조하여 숫자 20을 출력.

super()

  • this()는 같은 클래스의 다른 생성자를 호출하는 데 사용되지만, super()는 상위 클래스의 생성자를 호출하는 데 사용됩니다.
  • super() 메서드 또한 this()와 마찬가지로 생성자 안에서만 사용 가능하고, 반드시 첫 줄에 와야 한다.



0개의 댓글