【Java学习】混型尝试(1,java混型尝试
分享于 点击 38083 次 点评:186
【Java学习】混型尝试(1,java混型尝试
【Java学习】 —— 学习自《Thinking In Java》
混型是什么概念?很多地方有不同的解释。
这里就不再对这个概念做过多的解释了,大概理解为某个类能够混合多个类的能力。
好了,可能我们会想,这不就是由接口来完成的能力吗?
只要我实现了需要混合进来的类的接口,不就已经完成了这个吗?
或者说是定义一个类似“总”的接口,来对这些进行管理?
的确,这在Java里是一种比较推荐的解决方案。
OK,那我们就来测试实现一下:
interface IToMixObjectA {
String methodA();
}
interface IToMixObjectB {
String methodB();
}
class ToMixObjectA implements IToMixObjectA {
@Override
public String methodA() {
return "I'm method A";
}
}
class ToMixObjectB implements IToMixObjectB {
@Override
public 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();
@Override
public String methodA() {
return objectA.methodA();
}
@Override
public 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那样简洁。。
那我们还有没有其他方式来实现呢?
……
相关文章
- 暂无相关文章
用户点评