관심있는 주제/Java

Extends, super

Lynn123 2018. 11. 20. 23:22
반응형

우리는 상속이라는 것을 통해서 사용하는 클래스에 직접 메소드를 추가하지 않아도 추가한 메소드를 사용할 수 있다. 아래의 예제를 보면 Second 라는 클래스와 Third 라는 클래스가 있다.

나는 Info라는 함수를 하용하면서 동시에 Infonot도 사용하고 싶다.

만약 내가 Second라는 함수를 수정할 수 없는 상황이라면 아예 새로운 클래스를 정의하여 확장을 통해 Infonot을 사용할 수 있다.

여기서 Third를 자식 클래스 Second를 부모 클래스라고 한다. 

이때 Third가 Second를 상속한다 또는 확장한다 라고 표현한다. 


- Extend

상속의 효과 : 코드의 중복을 피할 수 있다. 재활용성이 높다. 유지보수가 편리하다. 가독성이 높아진다.


- super


super를 통해서 부모 클래스에 있는 변수를 가져올 수 있다.

this가 그 클래스 안에 있는 전역변수를 가져온다면 super는 부모 클래스에 있는 전역 변수를 가져온다고 이해했다.

그런데 저기 Third의 생성자에서 항상 일일이 this로 정의해 주는 것이 번거롭다. 따라서 

이런 방법으로 아예 부모 클래스의 constructor를 불러오는 것이 가능하다. 저 의미는 위 긴 코드 속 third(String A, String B) 의 의미와 동일한 것 같다.

반응형

'관심있는 주제 > Java' 카테고리의 다른 글

오버로딩(over loading)  (0) 2018.11.22
오버라이딩(overriding)  (0) 2018.11.22
생성자(constructor)  (0) 2018.11.20
전역변수 / 지역변수  (0) 2018.11.20
클래스  (0) 2018.11.19