※메모 : protect는 파생클래스에서만 접근을 허용 / private는 외부에서 접근을 불허 / public은 어디서나 접근을 허용합니다.
private 상속을 받으면 클래스 내부에 public 멤버함수 등 private보다 접근범위가 넓은 대상을 모두 private로 바꾸어 상속이 됩니다. 그러나 private로 선언된 멤버변수는 상속되는 대상이 아니기에 멤버변수의 직접 접근은 불가능합니다. 멤버함수 등을 통하면 접근할 수 있습니다. 함수가 정의되어 있지 않다면 접근은 불가능 하겠죠.
protect 상속을 받으면 protect보다 접근범위가 넓은 대상을 모두 protect로 바꾸어 상속이 됩니다.(private는 그대로 private), 파생클래스에서는 멤버변수에 접근이 가능합니다.
public 상속을 받으면 private protect에 영향을 끼치지 않고 public은 그대로 들어오기에 클래스 그 자체가 그대로 상속이 됩니다. (물론 멤버변수에 접근하려면 해당 클래스에 멤버변수에 접근할 수 있는 함수가 있어야합니다.
공통적으로 멤버변수는 상속대상이 아니기 때문에 상속받은 자식클래스가 부모클래스를 초기화해줄려면 멤버 이니셜라이저방법으로 해준다.(직접 접근보단 이니셜라이저가 좋다)