JAVA/chapter16_polymorphism
chapter04 : polymorphism
GAWON
2023. 5. 26. 18:53
package org.joonzis.ex;
class Person{
public void eat(String food) {
System.out.println(food + "먹는다");
}
public void sleep() {
System.out.println("잔다");
}
}
class Student extends Person{
public void study() {
System.out.println("공부한다.");
}
}
class Worker extends Person{
public void work() {
System.out.println("일한다.");
}
}
public class Ex04_polymorphism {
public static void main(String[] args) {
Person person1 = new Student(); // 업 캐스팅
// 학생은 급식먹고 잠 자고 공부하고
person1.eat("급식");
person1.sleep();
// 다운 캐스팅 : Person -> Student 강제 변환
if(person1 instanceof Student) { // person1이 Student 객체 인가?
Student stu = (Student)person1; // 다운 캐스팅
stu.study();
}
System.out.println("--------------------------");
Person person2 = new Worker(); // 업 캐스팅
// 직장인은 술먹고 잠 자고 일하고
person2.eat("술");
person2.sleep();
if(person2 instanceof Worker) {
((Worker)person2).work();
}
}
}