InterfacePerson
Younger
Student
TrainnedStudent[装饰类]
InterfacePerson
interface InterfacePerson {
void eat();
void sleep();
}
Younger
public class Younger implements InterfacePerson{
@Override
public void eat() {
System.out.println("身体发育期,合理饮食");
}
@Override
public void sleep() {
System.out.println("身体发育期,按时休息");
}
public void play(){
System.out.println("意气风发,尽情玩耍");
}
}
Student
public class Student extends Younger{
public void exam(){
System.out.println("学生正在考试");
}
}
TrainnedStudent
public class TrainnedStudent extends Student{
private Student s;
public TrainnedStudent(Student s){
this.s = s;
}
@Override
public void exam(){
System.out.println("考前认真准备");
s.exam();
System.out.println("考后认真总结");
}
}
Demo
public class Demo {
public static void main(String[] args) {
Student s = new TrainnedStudent(new Student());
s.exam();
}
}
// 考前认真准备
// 学生正在考试
// 考后认真总结