【Java学习】混型尝试(1 - 接口)
来源:互联网 发布:自学编程语言 知乎 编辑:程序博客网 时间:2024/06/04 00:32
【Java学习】 —— 学习自《Thinking In Java》
混型是什么概念?很多地方有不同的解释。
这里就不再对这个概念做过多的解释了,大概理解为某个类能够混合多个类的能力。
好了,可能我们会想,这不就是由接口来完成的能力吗?
只要我实现了需要混合进来的类的接口,不就已经完成了这个吗?
或者说是定义一个类似“总”的接口,来对这些进行管理?
的确,这在Java里是一种比较推荐的解决方案。
OK,那我们就来测试实现一下:
interface IToMixObjectA {String methodA();}interface IToMixObjectB {String methodB();}class ToMixObjectA implements IToMixObjectA {@Overridepublic String methodA() {return "I'm method A";}}class ToMixObjectB implements IToMixObjectB {@Overridepublic String methodB() {return "I'm method B";}}首先定义2个接口和2个类,
这2个类分别对应实现这2个接口。
然后,再定义一个实现这些接口的的混合类:
class MixtureByInterface implements IToMixObjectA, IToMixObjectB {private ToMixObjectA objectA = new ToMixObjectA();private ToMixObjectB objectB = new ToMixObjectB();@Overridepublic String methodA() {return objectA.methodA();}@Overridepublic String methodB() {return objectB.methodB();}}
一般应该在构造的地方接受所要混入的实例的,这里就不改了,理解就好。
最后看看main:
public static void main(String[] args) {// 以接口的方式实现System.out.println("Mix by Interface:");MixtureByInterface mixtureInterface = new MixtureByInterface();System.out.println(mixtureInterface.methodA());System.out.println(mixtureInterface.methodB());System.out.println();}
输出结果:
Mix by Interface:
I'm method A
I'm method B
OK。以接口的方式实现混型就完成了。
这里是比较简单的2个类和2个接口,
如果说要更加适用和通用的情况,如果有更多的类和接口,那这代码不就太多了??
这的确值得思考,这方面Java不如python那样简洁。。
那我们还有没有其他方式来实现呢?
……
0 0
- 【Java学习】混型尝试(1 - 接口)
- 【Java学习】混型尝试(2 - 装饰器)
- 【Java学习】混型尝试(3 - 动态代理)
- loadrunner之 学习三:初次尝试用LR测试接口
- 从零开始学习Ada(尝试)
- Java学习笔记----接口1
- java学习笔记(接口)
- java学习(7) 接口
- *型图案的显示与控制(学习C语言后的编程尝试)(1)
- .Net尝试(1)
- 微信接口尝试
- 多次尝试请求接口
- 【Java学习】泛型接口学习
- java尝试!
- JAVA学习第6天(1)接口1
- 学习Kotlin 初次尝试(一)
- JAVA学习笔记之泛型接口
- 接口的回调1-java学习
- win7 ubuntu
- UILabel自适应大小的新方法boundingRectWithSize:options:attributes:context:
- 关于“Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002”出错
- 如何使用别人的代码 (特指在MFC里面 或者推广为C++里面)
- LeetCode-Combinations
- 【Java学习】混型尝试(1 - 接口)
- NSURLConnection
- 击鼓传花:对比 muduo 与 libevent2 的事件处理效率
- SQL 高级(7) Date 函数
- 关于xmlns:tools使用说明(转)
- HDU 3879 最大树闭合图
- C++遍历目录
- Java中StringBuffer和StringBuilder类总结
- 使用wordpress搭建博客过程中遇到的一些问题