用继承表达行为间的差异,并用字段表达状态上的变化
2015-12-09 15:56
375 查看
eg:
public class Actor {
public void act(){}
}
public class HappyActor extends Actor{
public void act(){
System.out.println("HappyActor");
}
}
public class SadActor extends Actor{
public void act(){
System.out.println("SadActor");
}
}
public class Stage {
private Actor actor = new HappyActor();
public void change(){ actor= new SadActor();}
public void performPlay(){ actor.act();}
}
public class Transmogrify {
public static void main(String[] args) {
Stage stage = new Stage();
stage.performPlay();
stage.change();
stage.performPlay();
}
}
public class Actor {
public void act(){}
}
public class HappyActor extends Actor{
public void act(){
System.out.println("HappyActor");
}
}
public class SadActor extends Actor{
public void act(){
System.out.println("SadActor");
}
}
public class Stage {
private Actor actor = new HappyActor();
public void change(){ actor= new SadActor();}
public void performPlay(){ actor.act();}
}
public class Transmogrify {
public static void main(String[] args) {
Stage stage = new Stage();
stage.performPlay();
stage.change();
stage.performPlay();
}
}
相关文章推荐
- 自定义Toast(解决小米手机或用户关闭通知不显示)
- Android之 ListActivity 的使用和在 ListView中添加图片文字
- Spring拦截器
- 基于node Express 拦截器的实现
- MAC Github的使用方法
- Unity5中lightmap的坑
- 导出java帮助文档
- Erlang OTP学习(3) supervisor
- jsp出现错误can not find the tag directory /web-inf/tags
- 夺命雷公狗---Smarty NO:08 if–elseif–else函数
- json在线转Bean
- 小白学算法2.9——基数排序
- Oracle创建表空间和用户语句
- Hdu 4145 Cover The Enemy(大开脑洞)
- ELFHash 算法
- java 一个类同时继承Thread,Runable
- YARN学习
- swift中let 和var的区别
- Bootstrap Modal 如何清除已定义的事件
- listview,onitemclick失效