`
cesul
  • 浏览: 30950 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

面试中涉及java SE的几大块问题续1

阅读更多
当然,如果事情足够复杂,在ABC剩下的事务中可能是围绕一件事E进行多个实现,那么ABC去implements这个E接口进行不同实现。E是别人提供的一个接口,实现了E就意味着主动接受了外部E的契约。
所以最终的代码就写成:  public A extends X implements E(){...}
此外,还有一些观点:

1,interface关注的是外部的使用者,对外指定一种规则,而Abstract Class是针对类自身的,是对内部变化的一种封装。
2,abstract class表示“is-a”的关系,即父类与继承类本质上一致的;
对于interface,并不要求interface的实现者和interface定义在概念本质上是一致的, 只表示一种契约关系,可以将interface看成“like-a”或者“has-a”的关系。

举例来说:电视机、收音机同属电器,具有打开,关闭,调台的方法;同时电视机、收音机都有遥控器(收音机带遥控器的好像不多!)。类结构如下:
abstract class 电器{
       public void 打开(){}
       public void 关闭(){}
       public void 调台(){}
}

interface 遥控器{
      void 遥控();
}

class  电视机 extends 电器 implements 遥控器{
}
class  收音机 extends 电器 implements 遥控器{
}


3,再来一例,对照总结:

	public class IPad extends device implements Bluetooth implements Wifi implement Tourch{   }
	public class IPhone extends device implements Wifi implements touch {   }
	public class IPod extends device implements Bluetooth {   }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics