我听说有一种方式来欺骗单一继承,并在
Java中实现多重继承.有没有人知道如何实现这个(使用界面)?
只是出于好奇心;-)
解决方法
当然可以,但它很棘手,你应该考虑如果这是你想去的方式.
这个想法是使用基于范围的继承加上基于类型的继承.对于内部目的,内部类“继承”外部类的方法和字段,是类型谈话.这有点像mixins,外层类与内部类混合在一起,但不是那么安全,因为你可以改变外部类的状态以及使用它的方法.
Gilad Bracha(主要的java语言设计师之一)写了一篇 paper讨论.
所以,假设你想要在一些不相关的类之间共享一些内部使用的方法(例如,对于字符串操作),你可以创建它们的子类作为具有所有需要的方法的类的内部类,并且子类可以使用来自他们的超级类和外部类的方法.
这个想法是使用基于范围的继承加上基于类型的继承.对于内部目的,内部类“继承”外部类的方法和字段,是类型谈话.这有点像mixins,外层类与内部类混合在一起,但不是那么安全,因为你可以改变外部类的状态以及使用它的方法.
Gilad Bracha(主要的java语言设计师之一)写了一篇 paper讨论.
所以,假设你想要在一些不相关的类之间共享一些内部使用的方法(例如,对于字符串操作),你可以创建它们的子类作为具有所有需要的方法的类的内部类,并且子类可以使用来自他们的超级类和外部类的方法.
无论如何,这对于复杂的类来说是棘手的,您可以使用静态导入(从Java 5开始)获取大部分功能.尽管工作面试和酒吧测验的很大问题,