extends 키워드를 사용해서 상속을 받은 클래스인 하위 클래스가 호출 될때 상위 클래스가 호출된다.
아래 그림은 예시이다.
Calculator
SubstractionableCalculator
CalculatorDemo1
위 코드는 에러를 냅니다.
하위 클래스인 SubstractionableCalculator는 생성자가 호출될 때, 상위 클래스인 Calculator의 생성자를 호출합니다.
상위 클래스인 Calculator의 생성자는 매개변수를 필요로 하고 있으며, 하위 클래스는 매개 변수를 갖는 생성자를 따로 호출하지 않습니다.
그렇기 때문에 매개변수가 없는 Calculator 생성자를 따로 만들어 줘야 합니다.
또 다른 방법으로 이를 해결할 수 있는데 super 키워드를 사용하는 것 입니다.
super는 상위 클래스를 뜻하며, 이 글의 예시에서는 Calculator가 되겠습니다.
super()는 상위 클래스의 생성자를 뜻하며
하위 클래스의 생성자에서 super()를 사용한다는 뜻은, 호출될 상위 클래스의 생성자를 지정해주는 것 입니다.
위 코드의 super(left, right)는 매개변수 2개를 필요로 하는 생성자를 지정하고 호출한다는 뜻 입니다.
'Java' 카테고리의 다른 글
[Java] method와 static (0) | 2023.10.15 |
---|