백엔드 과정/Java

[Java] 상속 개념 복습

mim 2022. 1. 15. 16:53
반응형

 

 

클래스 상속에 대한 개념을 설명할 수 있다.

 

부모 클래스가 가지는 멤버를 자식클래스가 물려받아 자신의 멤버인 것척럼 사용할 수 있도록 만든 기술

자바는 단일 상속을 지원한다. (모호성을 제거)

클래스 간의 상속 시에는 extends 키워드 사용

 

 

상속의 목적을 설명할 수 있다.

부모 클래스의 기능을 자식클래스에서 상속받아 코드를 재사용하는 것.  

자식클래스는 부모 클래스가 가진 메소드를 사용할 수 있다. (private 멤버는 접근 불가)

 

 

상속의 장단점을 설명할 수 있다.

장점

새로운 클래스 작성 시 부모 클래스에서 작성된 코드를 이어받아 새로 작성하지 않아도 됨. 클래스의 재사용

클래스간 계층관계과 형성되어 다형성의 문법의 토대가 된다.

 

단점

부모클래스가 변경될 때 자식클래스에서 정상적인 동작을 할지 예측하기 어렵다.

자식클래스가  물려받아 사용하는 기능을 부모클래스에서 변경하기 어려움.

부모 클래스의 기능이 자식클래스에서 무의미 할 수 있다.

 

 

IS-A관계를 고려하여 상속이 필요한 경우를 구분할 수 있다.

새는 동물이다. -> 동물이 부모클래스이고, 새는 자식클래스이다.

자식 클래스는 부모 클래스 이다. 라는 의미임. 반대는 있을 수 없다. 동물은 새로 한정되지 않는다.

 

 

super.과 super()를 이해할 수 있다.

super 부모클래스의 인스턴스 주소를 보관하는 레퍼런스 변수.

자식 클래스 내의 모든 생성자와 메소드 내에서 부모클래스의 레퍼런스 변수를 사용할 수 있다.

 

super() 부모 생성자를 호출하는 구문. this()는 해당 클래스의 생성자를 호출하는 구문이다.

생성자 두 번 호출은 허용되지 않는다.

super()로 부모 클래스의 생성자를 호출했다면 자식클래스의 생성자는 this.으로 작성해준다.

 

 

오버라이딩에 대해 설명할 수 있다.

오버라이딩 이란 부모 클래스에서 상속 받은 메소드를 자식 클래스가 재정의 하여 사용하는 것이다.

 

 

오버라이딩 성립 요건에 대해 설명할 수 있다.

1. 메소드 이름 동일

2. 매소드 리턴타입 동일

3. 매개변수의 타입, 개수, 순서가 동일

4. private 메소드는 오버라이딩 불가능

5. 접근제한자는 부모메소드와 같거나 더 넓은 범위여야함.

6. final 키워드가 사용된 메소드는 오버라이딩 불가능

7. 예외처리는 같은 예외이거나 더 구체적(하위)인 예외를 처리해야함.

 

 

오버로딩과 오버라이딩을 구분하여 각각의 개념과 공통점, 차이점을 설명할 수 있다.

오버로딩은 같은 클래스 내에서 메소드의 이름을 동일하게 사용하기 위해 메소드 시그니처기 달라야 한다.

오버라이딩은 하위 클래스에서 부모클래스의 메소드를 재정의하기 위해 메소드의 시그니처가 모두 동일해야 한다.

 

 

반응형