캡슐화와 접근 제어자
접근 제어자를 사용하는 이유?
1. 외부로부터 데이터를 보호하기 위해서
2. 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서
< 예제 - 시간 바꾸기 >

특정 범위가 있는 변수들을 private으로 설정하여 외부 직접 접근을 막고, 메서드를 public으로 하여 메서드를 통해 간접 접근만 허용하도록 해야함
다형성 (polymorphism)
여러가지 형태를 가질 수 있는 능력
조상 타입 참조 변수로 자손 타입 객체를 다루는 것
- 자손타입의 참조 변수로 조상 타입의 객체를 가리킬 수 없음 (에러)

조상 타입 Tv의 참조변수 t로 자손타입 SmartTv의 객체를 다룸
객체와 참조변수의 타입이 일치할 때와 일치하지 않을 때의 차이?
1. SmartTv s = new SmartTv(); // 참조변수 타입 == 인스턴스 타입
➔ SmartTv가 가진 7개 멤버 모두 사용 가능
2. Tv s = new SmartTv(); // 참조변수 타입 != 인스턴스 타입 : 다형성
➔ Tv가 가진 5개 멤버만 사용 가능