黑马程序员技术交流社区

标题: 交通灯管理系统中的疑问 [打印本页]

作者: 李万海    时间: 2013-3-27 10:38
标题: 交通灯管理系统中的疑问
本帖最后由 李万海 于 2013-3-27 12:48 编辑
  1. public enum TrafficLamp {
  2.         RED{
  3.                 public TrafficLamp nextLamp(){
  4.                         return GREEN;
  5.                 }
  6.         },
  7.         GREEN{
  8.                 public TrafficLamp nextLamp(){
  9.                         return YELLOW;
  10.                 }
  11.         },
  12.         YELLOW{
  13.                 public TrafficLamp nextLamp(){
  14.                         return RED;
  15.                 }
  16.         };
  17.         /* TrafficLamp nextLamp() {
  18.                 return null;
  19.         }*/
  20.          public abstract TrafficLamp nextLamp();
  21. }
复制代码
请看注释部分,他跟public abstract TrafficLamp nextLamp();实现的是同样的nextLamp方法,请问这两种实现有什么区别?

作者: 我手心里的宝    时间: 2013-3-27 10:47
利用抽象方法是定义一种规范,他的事例对象,如Red 必须复写这个方法,你不复写就会出错
你在里面定义方法也可以,不过你每个对象对应的不一样,相当麻烦呀 ,定义抽象是为了简化
作者: 陈丽莉    时间: 2013-3-27 11:32
若还有问题,请继续追问;没有的话,尽量及时将帖子分类改成【已解决】哦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2