상속
상속의 개념
상속이란, 기존 클래스(부모 클래스, Base Class)의 멤버와 메서드를 새로운 클래스(자식 클래스, Derived Class)가 물려받는 기능입니다.
코드를 재사용하고, 클래스 간 계층 구조를 생성할 때 사용합니다.

is a, has a

의미
A는 B이다
A는 B를 가지고 있다
문법
상속(class A : public B)
포함(B b;)
사용 목적
종류 분류, 기능 확장
부품 구성, 소유
예
Dog is-a Animal
Car has-a Engine
실습 예제
ch07ex01_Animal.cpp
Animal 클래스
속성: name
메서드: setName(string new_name), speak(), sleep(), walk()
Dog 클래스
Animal 클래스 상속
메서드: bark()
ch07ex02_Duck.cpp
Animal 클래스
속성: name, foot
메서드: setName(string new_name), speak(), sleep(), walk()
Duck 클래스
Animal 클래스 상속, foot 속성 변경
메서드: bark()
실습 예제
ch07lab1_vehicle.cpp
Vehicle(기본 클래스):속성:
brand: 이동수단의 브랜드 (문자열).wheels: 이동수단의 바퀴 수 (정수).
메서드:
printInfo(): 이동수단의 정보를 출력하는 함수.
Car(자동차,Vehicle클래스를 상속):속성:
doors: 자동차의 문 수 (정수).
메서드:
move(): 자동차가 도로를 따라 이동하는 방식에 대한 구체적인 구현.printInfo(): 자동차의 정보를 출력합니다 (브랜드, 바퀴 수, 문 수).
Bicycle(자전거,Vehicle클래스를 상속):속성:
hasBell: 자전거에 벨이 있는지 여부 (불린 값).
메서드:
move(): 자전거가 도로를 따라 이동하는 방식에 대한 구체적인 구현.printInfo(): 자전거의 정보를 출력합니다 (브랜드, 바퀴 수, 벨 유무).
관계:
Car와Bicycle는Vehicle클래스를 상속받습니다. 즉,Vehicle클래스는 기본 클래스이고,Car와Bicycle은 파생 클래스입니다.각 파생 클래스는
Vehicle클래스에서 정의된 메서드를 오버라이드하여 각 이동수단에 맞는 동작을 구현합니다.
Last updated