Language/Java

[JAVA] 상속 👨‍👩‍👧‍👦

검은 까마귀 2023. 9. 12. 12:28

안녕하십니까? 검은 까마귀 입니다.

오늘은 상속에 대해서 알아보겠습니다~

 

상속은 뭘까?

일단 상속의 사전적 의미에 대해 알아보겠습니다.

일정한 친족관계가 있는 사람 사이에 한 쪽이 사망하거나 법률상의 원인이 발생하였을 때 재산적 또는 친족적 권리와 의무를 포괄적으로 계승하는 제도.

사전적 의미로는 재산또는 친족적 권리와 의무를 계승하는 제도를 의미한다고 하네요

 

 

그렇다면 객체지향프로그래밍에서 상속은 어떤것을 계승하게 될까요?

 

한줄로 요약을 해보았을때

"클래스가 이미 존재하는 클래스의 속성(필드)과 메서드가 사용이 됩니다"

 

우리는 개발자이기 코드로 이야기 해볼까요??

 

 

 

 

class 부모클래스 {
    int 부모필드;
    
    void 부모메서드() {
        System.out.println("부모 메서드 실행");
    }
}

class 자식클래스 extends 부모클래스 {
    int 자식필드;
    
    void 자식메서드() {
        System.out.println("자식 메서드 실행");
    }
}

public class Main {
    public static void main(String[] args) {
        자식클래스 자식 = new 자식클래스();
        
        자식.부모메서드(); // 부모 메서드 실행
        자식.자식메서드(); // 자식 메서드 실행
    }
}

 

상속이기 때문에 부모 자식이 있어야겠죠?

https://www.tcpschool.com/java/java_inheritance_concept

 

그러면 현실에서는 자식들한테 재산을 상속해주는데

객체지향 프로그래밍에서는 상속을 왜 할까요? 굳이....??

 

 

 

이유는 아주 단순합니다

개발자는 높은 생산성을 가져야합니다!

 

예를 들어볼까요?

우리가 생물이라는 "부모클래스"에서 

동물, 식물이라는 "자식클래스"에게 상속해준다고 했을때

 

생물이라는 공통에 있는 것들 "성장, 죽음"과 같이 생물이 가진 공통점

동물, 식물에 상속되어 동물과 식물이 가진 각각 특성을 새로운 필드를 넣어줄 수 있습니다.

 

 

쉽게말해!!🎶

재사용성, 다항성, 유지보수성

 

 

개발자의 중요한 핵심입니다.

1. 확장할때 덜 귀찮게

2. 내 동료가 이해하기 쉽게

3. 과거에 나와 마주할때 나를 욕하지 않게

 

 

 

그렇다면 Java에서 상속을 할때 유의해야 할 점은 무엇일까요??

 

1. 상속의 목적 이해하기!! (이건 뭐..... 목적도 모르고 쓴다면 차라리 안쓰는게 낫겠죠?)

2. 재사용성을 한답시고 상속 무지성 쓰지 말기(상속을 사용한다고 재사용성이 올라가겠지만 과거의 나를 미워하게 될 수 있답니다)

3. 접근제어자의 활용(private, public) - 적절하게 사용하여 클린 코드를 지향합시다~

 

 

제가 공부한 상속은 이렇습니다....

정의는 쉽지만 사용할때 고민을 많이해야해요

강한 결합, 약한 결합에 대해 또 알아야합니다

 

 

 

혹시라도 문제점이 있으면 댓글로 작성해주시면 감사하겠습니다~

 

 

반응형

'Language > Java' 카테고리의 다른 글

[JAVA] Gabage Collection (2)🗑️  (0) 2024.04.09
[JAVA] Gabage Collection (1)🗑️  (1) 2024.04.09
[JAVA] JVM 메모리 구조  (0) 2023.09.12
[JAVA] Thread 활용법  (0) 2022.01.14
[JAVA] Collection FrameWork  (0) 2022.01.12