在Java中继承没有父类型的类
如何从另一个类继承而不采用父类型 例如,我希望能够让在Java中继承没有父类型的类,java,inheritance,types,Java,Inheritance,Types,如何从另一个类继承而不采用父类型 例如,我希望能够让Car采用Vehicle的所有方法和属性,而不被识别为Vehicle类型的对象 在Java中有没有一种不复制所有方法和属性的便捷方法?这取决于您对便捷的定义。您正在寻找/组合/聚合,本质上是: class B { A a; T foo() { return a.foo(); } } 这意味着A中定义的所有方法都需要在B中复制 这经常出现在讨论中。我认为您要做的是使用委托模式。使用本机Java无法轻松做到这一点,您可以使用使其变得非常方
Car
采用Vehicle
的所有方法和属性,而不被识别为Vehicle
类型的对象
在Java中有没有一种不复制所有方法和属性的便捷方法?这取决于您对便捷的定义。您正在寻找/组合/聚合,本质上是:
class B {
A a;
T foo() { return a.foo(); }
}
这意味着A
中定义的所有方法都需要在B
中复制
这经常出现在讨论中。我认为您要做的是使用委托模式。使用本机Java无法轻松做到这一点,您可以使用使其变得非常方便。您很难使用字节码反向危及库,如javassist。 下面是一些使用javassist操作java类文件的示例
如果汽车和汽车继承了一项共同的专利,它们将具有相同的方法,而汽车不是汽车,也不会重复。如果您使用的是Spring Framework,您可以为此定义抽象bean也许我不理解这个问题,但您可能希望定义
接口车辆
,让车辆
实现该接口。因此,您希望委托而不是继承。Java没有一种方便的方法来实现委派。您可以将vehicle的方法提取到一个接口,该接口将由vehicle和car使用。那么你的车就不一定是车了