상속을 할 때 대부분 public 상속을 하게 됩니다.
하지만 아래표와 같은 상황을 고려하여 protected 상속이나 private 상속을 이용하면 좋을 경우도 많이 있습니다.
1. public 상속
가장 일반적인 public 상속의 경우, 위의 표에서 볼 수 있듯이 모든 속성이 그대로 유지됩니다.
2. protected 상속
부모의 protected 및 private 속성은 그대로 유지되나 public 속성은 protected가 됩니다.
이는 부모가 가진 공개속성들을 상속을 하면서 자식들은 접근할 수 있게하면서 비공개로 전환해야할 경우에 사용을 하면 됩니다.
3. private 상속
부모의 모든 속성을 private으로 변경합니다.
이는 부모에대해서 자식 및 외부 모두 접근할 수 없도록 만들경우에 사용합니다. (이럴일은 거의 없겠지요 ^^)
하지만 아래표와 같은 상황을 고려하여 protected 상속이나 private 상속을 이용하면 좋을 경우도 많이 있습니다.
public 상속 | protected 상속 | private 상속 |
public -> public protected -> protected private -> private |
public -> protected protected -> protected private -> private |
public -> private protected -> private private -> private |
1. public 상속
가장 일반적인 public 상속의 경우, 위의 표에서 볼 수 있듯이 모든 속성이 그대로 유지됩니다.
2. protected 상속
부모의 protected 및 private 속성은 그대로 유지되나 public 속성은 protected가 됩니다.
이는 부모가 가진 공개속성들을 상속을 하면서 자식들은 접근할 수 있게하면서 비공개로 전환해야할 경우에 사용을 하면 됩니다.
3. private 상속
부모의 모든 속성을 private으로 변경합니다.
이는 부모에대해서 자식 및 외부 모두 접근할 수 없도록 만들경우에 사용합니다. (이럴일은 거의 없겠지요 ^^)