Programming Summary

논의) 상속을 고민해볼 수 있는 3가지 질문 본문

프로 디지털 아카데미 4기

논의) 상속을 고민해볼 수 있는 3가지 질문

쿠키롱킹덤 2024. 7. 4. 16:57

세가지 질문

프로 디지털 아카데미 4기에서 강사님께서 상속에 대해 고민할 수 있는 질문들에 대해 말씀해주셨다. 그 질문은 다음과 같다.

1.  상속 관계를 결정하는 클래스는 누구인가요?

2. 생성자도 상속되는 걸까요?

3. 아래 네모는 객체입니다. A,B중 누가 부모이고, 자식일까요?

의사 결정 과정

1. 상속 관계를 결정하는 클래스는 누구인가?

자식 클래스이다. 이건 큰 이견 없이 모든 사람이 동의한 내용이었다. 어떤 클래스 혹은 인터페이스를 상속받을지 결정하는 곳은 자식 클래스이기 때문이다.

2. 생성자도 상속되는걸까?

나는 이 부분은 상속되지 않는다고 생각한다. 상속이라 함은 자식에서 재정의할 수 있어야 하는데,

public class Child {
    public Parent() {
        ...
    }
}

와 같이 작성하지 못하기 때문이다.


다음과 같이 super에 마우스를 대면 부모 생성자로 연결되는 모습에도 상속받는게 아닌 호출한다라고 생각할 수도 있다.

A,B 중 누가 부모이고, 자식일까?

이건 두 가지 관점이 있다고 생각한다.
먼저, 우리는 객체의 정의를 "주어 자리에 들어갈 수 있는 것" 이라고 정의를 하였다. 이 관점에서 볼 때, 스마트폰, 갤럭시, 애플은 모두 객체이며, 스마트폰갤럭시애플의 부모이다. 그리고 갤럭시애플스마트폰의 일종이므로 자식이 부모에 포함된다고 생각할 수 있다.
하지만 코드 관점에서 볼 때 '갤럭시'와 '애플'은 '스마트폰'을 상속받고 더 많은 기능을 추가 및 수정을 할 수 있다. 그러므로 부모가 자식에 포함된다고도 생각할 수 있다.

내가 내린 결론

1.  상속 관계를 결정하는 클래스는 누구인가요?
    - 자식 클래스이다.
2. 생성자도 상속되는 걸까요?
    - 상속되지 않는다.
3. 아래 네모는 객체입니다. A,B중 누가 부모이고, 자식일까요?
    - 관점에 따라 다르다.