Java/자바

상속과 생성자

필리힐리 2021. 1. 14. 18:19

상속

 

객체는 변수와 메소드를 상속하고 상속 받을 수 있다

상속한 부모 클래스는 상위(Upper)클래스 또는 기초(Base)클래스라고 부른다

상속 받는 자식 클래스는 하위(Sub)클래스 또는 유도(Derived)클래스라고 부른다

 

상속을 받으면 이미 쓰여진 메소드, 변수 (부품)을 재활용할 수 있기 때문에 효율적이다

*중복의 제거라는 프로그래밍이 추구하는 가치와 일맥상통한다

 

또한 상속을 받지 않고 원래 코드에서 수정을 한다고 했을 때 로직이 본인이 짠 거라면 상관이 없지만

다른 사람의 코드를 가지고 왔다면 컨트롤 하기가 너무 힘들어진다

*원본 코드가 업데이트 됬을 경우 내가 수정한 코드는 없어진다 -> 이걸 인지 못할 수도 있다

 

class SubstractionableCalculator extends Calculator

extends 라는 코드로 상속을 받을 수 있다

*SubstractionableCalculator라는 클래스를 Calculator 클래스가 가진 인스턴스로 확장하는 느낌으로 이해

 

상속은 밑으로 계속 상속이 가능하다

 

상속하기 위해선 서로 연결이 되어야하는데 그 연결고리 역할을 생성자가 하게 된다

 

생성자

 

생성자의 특징

 

값을 반환하지 않는다.
생성자는 인스턴스를 생성해주는 역할을 하는 특수한 메소드라고 할 수 있다. 그런데 반환 값이 있다면 엉뚱한 객체가 생성될 것이다. 따라서 반환 값을 필요로하는 작업에서는 생성자를 사용하지 않는다. 반환 값이 없기 때문에 return도 사용하지 않고, 반환 값을 메소드 정의에 포함시키지도 않는다.

 

생성자의 이름은 클래스의 이름과 동일하다.
자바에서 클래스의 이름과 동일한 메소드는 생성자로 사용하기로 약속되어 있다.

 

자바에서는 개발자가 매개변수가 있는 생성자를 명시하면 필요 없다고 인지하고 생성자를 만들어주지 않는다

이 때 해결 방법은 개발자가 직접 생성자를 명시해주는 것이다

#public Calculator(){}

 

super는 this와 개념이 비슷한데 this는 객체 본인을 가리키지만 super는 부모객체를 가리킨다

 

opentutorials.org/module/516/6126

'Java > 자바' 카테고리의 다른 글

Overloading  (0) 2021.01.19
Overriding  (0) 2021.01.14
유효범위  (0) 2021.01.13
클래스와 인스턴스 그리고 객체  (0) 2021.01.13
객체지향프로그래밍  (0) 2021.01.12