본문 바로가기
카테고리 없음

상속 (장/단점)

by 상똥 2024. 1. 15.

[상속(inheritance)]

1. 개념 및 특징

- 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것

 

2. 사용방법

- 새로 사용하고자 하는 클래스(하위클래스)의 이름 뒤에 상속받고자 하는 클래스(상위클래스)의 이름을 키워드 'extends'와 함께 쓰기

- 예시

class point {
}

class circle extends point {
}

class point {
    int x;
    int y;
}

class circle extends point {
    int r
}

3. 포함관계와의 비교

- 포함관계 : ~을 가지고 있다

class circle {
    point c = new point();
    int r;
}

- 상속관계 : ~은 이다

class circle extends point {
    int r;
}

 

4. 장점

(1) 코드의 확장성 및 재사용성 상승, 중복된 코드 제거 가능

    - 기존 클래스에서 정의한 메서드와 변수를 새로운 클래스에서 재사용

    - 새로운 클래스에서는 이미 작성된 코드를 그대로 사용하거나 필요에 맞게 수정하여 확장

(2) 객체지향 프로그래밍에서의 다형성

    - 상속을 통해 다형성 구현

    - 부모 클래스 타입으로 선언된 변수는 해당 부모 클래스 및 그의 모든 하위 클래스의 객체를 참조

    - 코드의 유연성을 높이고 코드를 더 간결하게 만듦

 

5. 단점

(1) 캡슐화에 영향

    - 부모 클래스의 구현에 따라 자식 클래스의 구현에 영향이 감

    - 부모 클래스의 이상도 자식 클래스가 상속하게 됨

(2) 부모 클래스의 필드와 메서드를 찾는데 불편함이 있음

    - 자식 클래스에서 부모 클래스의 필드와 메서드는 보이지 않음

    - 직접 찾아서 확인하는 방법밖에 없음