요약
기본 클래스 상속에는 크게 두가지가 있다. 인터페이스상속, 구현상속
인터페이스 상속이란?
순수 가상함수의 상속을 의미.
순수 가상함수는 구체 클래스가 해당 순수 가상 함수를 다시 선언해야하고, 추상 클래스 안에서 정의를 갖지 않음. 순수 가상함수를 선언한느 목적은 파생 클래스에게 함수의 인터페이스만을 물려주는 것!
구현 상속이란?
가상함수(기본클래스 함수를 호출하거나, 파생클래스 함수 호출하는 함수) 비가상함수(일반 함수)의 상속을 의미.
단순 가상함수를 선언하는 이유는 파생클래스로 하여금 함수의 인터페이스뿐만 아니라 그 함수의 기본 구현도 물려받게하려는 이유.
비가상 함수를 선언하는 목적은 파생 클래스가 함수 인터페이스와 더불어 그 함수의 필수적인 구현을 물려받게하려는 이유.
주의
모든 멤버함수를 비가상함수로 선언하지말 것! 기본 클래스의 동작을 특별하게 만들 수 없게한다.
모든 멤버함수를 가상함수로 선언하지말 것! 클래스 파생에 상관없는 함수일 때는 일반 함수가 좋다.
잊지말자!