Java:混型

发布于 2020-12-15  1489 次阅读


这个概念是我在《java编程思想》这本书中看到的,之前在学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。以接口的方式实现混型就完成了。


欢迎欢迎~热烈欢迎~