부모-자식 상속 관계에 있는 클래스에서 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리
입니다.
상속관계
오버라이딩 필수(자식클래스에서 메소드 재정의)
업캐스팅
1️⃣ 상속 클래스 구현(부모-자식 클래스)
package Book;
public class Book {
public String name;
public String publisher;
Book(){
this.name = "";
this.publisher = "";
}
Book(String name, String publisher){
this.name = name;
this.publisher = publisher;
}
void print(){
System.out.println("print : Book");
};
}
2️⃣ 메소드 오버라이딩
class Novel extends Book{
public String name;
public String publisher;
Novel(String name, String publisher){
super(name, publisher);
}
@Override
void print(){
System.out.println("print : Novel");
}
}
3️⃣ 자식 클래스를 부모 타입으로 업캐스팅하여 객체 선언
Book b = new Novel("메타버스 소설","출판사(IT)");
4️⃣ 부모 클래스 객체로 자식 메소드 호출
Book b = new Novel("소설","소설출판사");
b.print();
print : Novel