package ch12;
import java.util.Arrays;
public class LectureMain {
public static void main(String[] args) {
Lecture lecture = new Lecture("객체지향 프로그래밍", 70, Arrays.asList(81, 95, 75, 50, 45));
String evaluation = lecture.evaluate();
Lecture lecture2 = new GradeLecture(
"객체지향 프로그래밍",
70,
Arrays.asList(new Grade("A", 100, 95),
new Grade("B", 94, 80)),
Arrays.asList(81, 95, 75, 50, 45));
Professor professor = new Professor("다익스트라", new Lecture("알고리즘", 70, Arrays.asList(81, 95, 75, 50, 45)));
String statistics = professor.compileStatistics();
Professor professor2 = new Professor("다익스트라", new GradeLecture("알고리즘", 70,
Arrays.asList(new Grade("A", 100, 95),
new Grade("B", 94, 80)),
Arrays.asList(81, 95, 75, 50, 45)));
String statistics2 = professor2.compileStatistics();
}
}
lecture 예제로 다형성 구현
업캐스팅
Lecture lecture = new GradeLecture(...);
반대로 부모 클래스의 인스턴스를 자식 클래스 타입으로 변환하기 위해서는 명시적인 타입 캐스팅이 필요한데 이를 다운캐스팅이라고 부른다.
다운캐스팅
Lecture lecture = new GradeLecture(...);
GradeLecture GradeLecture = (GradeLecture) lecture;
406p
반응형
'Book' 카테고리의 다른 글
[독서 기록] 1만 시간의 재발견, 안데르스 에릭슨 (0) | 2023.05.17 |
---|---|
[독서 기록] 오브젝트 14장 일관성 있는 협력 (0) | 2023.01.18 |
[독서 기록] 오브젝트 10장 상속과 코드 재사용 11장 합성과 유연한 설계 (0) | 2023.01.17 |
[독서 기록] 오브젝트 8장 의존성 관리하기 9장 유연한 설계 (0) | 2023.01.17 |
[독서 기록] 오브젝트 6장 메시지와 인터페이스 (0) | 2023.01.17 |