java - Java中如何实现重叠继承?

标签 java

我想知道如何将重叠类型的继承转换为 Java。我得到了抽象类 Person 和 2 个扩展子类:Driver 和 Passenger。如您所知,司机也可能是乘客。所以问题是:在 Java 中实现重叠的最佳方式是什么?听说最好的办法就是用作文,但是我不知道怎么用。

最佳答案

当一个类可以在系统中扮演两个角色时,Java 中基于继承的方法是定义两个接口(interface),并让类实现它们:

interface Passenger {
    ... // Methods applicable to passengers
}
interface Driver {
    ... // Methods applicable to drivers
}
class Person implements Driver, Passenger {
    ... // A person can be a driver or a passenger
}
class Pet implements Passenger {
    ... // A pet can be only a passenger
}

您可以在内部使用组合来实现接口(interface),方法是将方法调用转发给 Person 中的私有(private)助手“passenger”和“driver”对象。

在 Java-8 中,您可以将所有实现类通用的逻辑放入默认方法实现中。

关于java - Java中如何实现重叠继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37797065/

相关文章:

java - 在其他 arraylist 上执行 addAll 时,两个 arraylists 引用相同的元素

java - 如何使用groovy读取文件并将其内容存储为变量?

java - 在 java 中禁用了 SSLv3 但在 javamail API 中 ssl 有效吗?

java - 插件 org.apache.maven.plugins :maven-resources-plugin:2. 6 或其依赖项之一无法解析

java - Jackson:如何为包含子对象作为字段的多个对象包含子对象的不同属性

java - 哲学家就餐——我与所有人交谈,只有一个人在听

java - 调用 Weka 时找不到或加载主类

java - JSON: "Unexpected character (<) at position 0"

java - 将元素添加到 Arraylist 时出现问题。 Android 版 JSoup

java - 与 Java 的数据绑定(bind)