札记—适配器模式(穿插父类引用指向子类)
2016-03-17 19:57
411 查看
原文链接 http://www.androidchina.net/1818.html
结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式
本文主要写适配器模式至类的适配
结合代码,夸自己一句,那叫图文并茂哈哈
说道类的适配模式,总感觉有点向父类引用指向子类,且看代码
定义一个类:Source
定义一个接口Targetable
定义一个类,继承类Source 实现Targetable 接口
测试类的实现
打印结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/11/7a358f03816e1f81a0c4773f7444b469)
知识二: 类Adapter 继承Source 实现接口Targetable。测试类里面,声明的是父类,实际指向的是子类的一个对象。可以用这几个关键词来概括:多态、动态链接,向上转型。且看下图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/11/f7182e544075b90d25141e9e1142bff2)
其一,引用只能调用父类里面的方法和变量
其二,如果子类重写了父类的方法,就调用子类里面重写的方法。注:不是重载
如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/11/0e11e417951f0a2978e172e7d67c7ff9)
子类重写父类的方法和重载父类的方法,这里就不多介绍了。
结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式
本文主要写适配器模式至类的适配
结合代码,夸自己一句,那叫图文并茂哈哈
说道类的适配模式,总感觉有点向父类引用指向子类,且看代码
定义一个类:Source
public class Source { public void method(){ Log.e("===","Source :"+"source"); } }
定义一个接口Targetable
/** * Created by zss on 2016/3/17 0017. */ public interface Targetable { public void method1(); public void method2(); }
定义一个类,继承类Source 实现Targetable 接口
public class Adapter extends Source implements Targetable { @Override public void method1() { Log.e("===","继承 source :"); } /* @Override public void method() { //先注释掉,下面解释原因 super.method(); Log.e("===","重写了该方法,运行子类的") ; }*/ @Override public void method2() { Log.e("===","实现 Targetable :"); } }
测试类的实现
public class AdapterTest { public static void main(String[] args) { Targetable target = new Adapter(); target.method1(); target.method2(); } }
打印结果:
知识二: 类Adapter 继承Source 实现接口Targetable。测试类里面,声明的是父类,实际指向的是子类的一个对象。可以用这几个关键词来概括:多态、动态链接,向上转型。且看下图
其一,引用只能调用父类里面的方法和变量
其二,如果子类重写了父类的方法,就调用子类里面重写的方法。注:不是重载
如下图:
子类重写父类的方法和重载父类的方法,这里就不多介绍了。
相关文章推荐
- Linux下OpenSSL 安装图文详解
- uva11462 Age Sort
- 哈希表详解
- 悉数美剧《黑客军团》中的黑客工具
- 可复用View的PagerAdapter
- 蓝桥杯 历届试题 串诸位和
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- 百度地图Web API学习
- 43.https自建证书在 AFN中的设置
- 阿里前端电面
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- Atitit.木马病毒强制强行关闭360 360tray.exe的方法
- 应用前后台切换的回调方法实现
- Atitit.复合文档的格式 标准化格式
- 学习进度表
- 【解题报告】BestCoder Round #75
- 浏览器检测
- visual studio code基础
- Spring JdbcTemplate实现数据库操作
- 认识Elasticsearch