오버라이딩
class Person{
String name;
int age;
String title = "사람";
void eat(){
System.out.println("사람은 밥을 먹는다.");
}
void sleep(){
System.out.println("사람은 잠을 잔다.");
}
}
class Employee extends Person{
// Person 에서 상속받은 title
String title = "회사원";
void sleep(){
System.out.println("사람은 잠을 잔다.");
System.out.println("회사원은 밤에만 잠을 잔다.");
}
}
class Student extends Person{}
public class InheritanceTest {
public static void main(String[] args) {
Person p = new Person();
Employee e = new Employee();
Student s = new Student();
p.name = "이순신";
e.name = "강감찬";
s.name = "장보고";
p.age = 10;
e.age = 40;
s.age = 50;
System.out.println(p.name+"은 나이가 "+p.age+"이다.");
System.out.println(e.name+"은 나이가 "+e.age+"이다.");
System.out.println(s.name+"은 나이가 "+s.age+"이다.");
System.out.println(p.title);
System.out.println(e.title);
System.out.println(s.title);
p.sleep();
e.sleep();
}
}
// sleep의 경우 오버라이딩 되었다.