다형성 2

[JAVA] 실전 자바 - 다형성과 설계

다형성과 설계 객체 지향 프로그래밍: 객체들들이 메세지를 주고받고 데이터를 처리 다형성은 역할과 구현으로 세상을 구분 하는 것 - 클라이언트는 구현 대상 자체가 변경해도 영향을 받지 않고, 대상의 역할(인터페이스)만 알면 된다. - 유연, 변경 용이 역할 = 인터페이스 구현 = 인터페이스를 구현한 클래스 자바 언어의 다형성 ⇒ 오버라이딩 OCP(Open - Closed Principle) 새로운 기능이 추가 되었을 때, 기존 코드는 확장할 수 있다. 기존의 코드는 수정되지 않아야 한다. 운전자는 자동차 인터페이스만 참조해 자동차 역할에만 의존한다. 새로운 차량을 추가해도 운전자의 코드는 바뀌지 않는다.

BACK/JAVA 2024.01.30

[JAVA] 실전 자바 - 다형성(다형적 참조, 메서드 오버라이딩)

다형성 한 객체가 여러 타입의 객체로 취급될 수 있는 능력 [다형성의 핵심 이론] 다형적 참조: 하나의 변수 타입으로 다양한 자식 인스턴스를 참조할 수 있는 기능 메서드 오버라이딩: 기존 기능을 하위 타입에서 새로운 기능으로 재정의 다형적 참조 부모 타입의 변수가 자식 인스턴스 참조 가능 Parent poly = new Child(); 자식 타입인 Child를 생성했기 때문에 메모리 상에 Child, Parent 모두 생성 💡 부모는 자식을 담을 수 있다. 상속 관계는 부모 방향으로 찾아 올라갈 수 있지만 반대는 불가능하다. poly 는 Parent 타입이므로 childMethod() 를 찾을 수 없어 컴파일 오류 → 캐스팅이 필요 다형성과 캐스팅 다운캐스팅 Parent poly = new Child()..

BACK/JAVA 2024.01.30