linkin大话设计模式--适配器模式



大家知道,在java中只允许单继承,但是在实际问题中往往都需要多继承,java引入了接口这一概念。(一个类可以实现多个接口)



由于接口中都是抽象方法,那么我们在实现它的时候就必须全部覆写这些方法。假如我有一个类,这个类只想覆写一部份方法怎么办?

 

在接口与这个类中间可以加一个抽象类:

抽象类去覆写接口中的全部方法,而那个类去继承这个抽象类,根据需要覆写抽象类中的方法。(简单的适配器模式)

代码如下:

 

public class AbstractTest {
public static void main(String[] args) {
Eat p=new MyPerson();
p.eatBread();
p.eatApple();
} }
//编译时的接口
interface Eat{
public void eatBread();
public void eatApple();
public void eatBanana();
} //接口和每一个具体的实现类之间的抽象类
abstract class PersonEat implements Eat{
public void eatBread(){};
public void eatApple(){};
public void eatBanana(){};
} //具体的子类实现
class MyPerson extends PersonEat{
public void eatBread(){
System.out.println("我在吃面包...");
} public void eatApple(){
System.out.println("我在吃苹果...");
}
}

最新文章

  1. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解
  2. 【emWin】例程六:设置颜色
  3. ItemIndex
  4. ubuntu14 谷歌输入法
  5. HTML之表单元素
  6. SQL Server小技巧【1】
  7. HDU 1002 A + B Problem II(AC代码)
  8. shell中大小写转换
  9. Check for Data Duplicates on a Grid
  10. leetcode@ [136/137] Single Number & Single Number II
  11. HTML中noscript的用法
  12. C++生产和使用的临时对象
  13. 布局常见问题之css实现多行文本溢出显示省略号(…)全攻略
  14. jdbc(2)
  15. Nginx+Tomcat+Https 服务器负载均衡配置
  16. frambuffer 相关函数理解
  17. 浅谈Java代理二:Cglib动态代理-MethodInterceptor
  18. AngularJS——第9章 模块加载
  19. CF 914F Substrings in a String——bitset处理匹配
  20. 收藏的iOS技术站点汇总(持续更新ing)

热门文章

  1. c#的unity
  2. Java编程思想读书笔记(二)【一切都是对象】
  3. 牛客网linux试题-错误整理-20170914
  4. 从交叉熵损失到Facal Loss
  5. DeepLearning.ai学习笔记(四)卷积神经网络 -- week3 目标检测
  6. K:平衡二叉树(AVL)
  7. React Native:真机断点调试+跨域资源加载出错问题解决
  8. 9、ABPZero系列教程之拼多多卖家工具 拼团提醒类库封装
  9. ThreadPoolExecutor的分析(二)
  10. django命令(笔记,自己看的)