一、建立接口
public interface Person {
public void action();
}
二、建立实现类
public class Student implements Person {
@Override
public void action() {
System.out.println("学生在学习!");
}
}
public class Worker implements Person {
@Override
public void action() {
System.out.println("工人在工作!");
}
}
三、建立抽象类并实现接口
public abstract class Decorator implements Person {
private Person person;
public Decorator(Person person) {
this.person = person;
}
public Person getPerson() {
return person;
}
}
四、建子类
public class Single extends Decorator {
public Single(Person person) {
super(person);
}
@Override
public void action() {
System.out.print("喜欢唱歌的");
getPerson().action();
}
}
public class Dancer extends Decorator {
public Dancer(Person person) {
super(person);
}
@Override
public void action() {
System.out.print("擅长跳舞的");
getPerson().action();
}
}
五、测试类
public class Test {
public static void main(String[] args) {
Person p=new Single(new Worker());
Person p1=new Single(new Dancer(new Student()));
p.action();
p1.action();
}
}
六、运行结果