[자바의 정석] 캡슐화와 다형성

myeonji·2022년 2월 2일
0

JAVA

목록 보기
4/9

> 캡슐화와 접근 제어자

  • 접근 제어자를 사용하는 이유 : 외부로부터 데이터를 보호하기 위해, 외부에는 불필요한 내부적으로만 사용되는 부분을 감추기 위해서 이다.

접근 제어자를 public에서 private으로 하여 외부에서 직접 접근하지 못하도록 할 수 있다.
메서드는 public 으로 하여 메서드를 통해 private 에 간접접근을 허용할 수 있다.

이것을 접근 제어자를 이용한 캡슐화라고 한다.

> 다형성

  • 여러 가지 형태를 가질 수 있는 능력
  • 조상 타입 참조 변수로 자손 타입 객체를 다루는 것

부모인 Tv 로 자식인 SmartTv 객체를 다루는 것이다.

Tv t = new SmartTv();

이렇게 타입을 불일치 시키는 것이다.

객체와 참조변수의 타입이 일치할 때와 일치하지 않을 때의 차이를 알아보자.

SmartTv s = new SmartTv(); // 참조변수와 인스턴스의 타입이 일치
Tv t = new SmartTv(); // 조상 타입 참조변수로 자손 타입 인스턴스 참조

객체와 참조변수의 타입이 일치하지 않다면, Tv 클래스에 정의된 멤버만 참조할 수 있다.

주의할 점은,
자손 타입의 참조변수로 조상 타입의 객체를 가르킬 수 없다.

SmartTv s = new Tv();

이러한 형식은 허용되지 않는다는 것이다!

0개의 댓글