我听说有一种方法可以欺骗单继承并在Java中实现多重继承.有谁知道如何实现这个(没有使用接口)?
只是出于好奇;-)
当然可以,但这很棘手,你应该考虑这是否是你想要的方式.
我们的想法是使用基于范围的继承与基于类型的继承相结合.对于内部目的而言,内部类"继承"外部类的方法和字段,这就是类型说话.它有点像mixins,其中外部类混合到内部类中,但不安全,因为您可以更改外部类的状态以及使用其方法.
Gilad Bracha(主要的java语言设计师之一)写了一篇论文讨论那个.因此,假设您想要在一些不相关的类之间共享一些内部使用的方法(例如,对于字符串操作),您可以创建它们的子类作为具有所有所需方法的类的内部类,并且子类可以使用来自超级类和外部类的方法.
无论如何,对于复杂的类来说这很棘手,你可以使用静态导入(从java 5开始)获得大部分功能.对于求职面试和酒吧测验的好问题,但是;-)
Java不支持Single Multiple继承,相反,它具有实现相同目的的接口。如果您坚持使用多重继承,则应在C ++中完成。