Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中继承没有父类型的类_Java_Inheritance_Types - Fatal编程技术网

在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使用。那么你的车就不一定是车了