java - 如何构建两级继承层次结构?

标签 java oop design-patterns

我假设一个类具有多个继承层次结构,它可以分解为: 假设一架飞机有 4 种组合:

1.  Subsonic & commercial
2.  Subsonic & jet fighter
3.  Supersonic & commercial
4.  Supersonic & jet fighter

现在我的非面向对象类看起来像这样

Class Airplane {

   Void SubsonicAndCommercial {
       print
    }

    void subsonicAndJet  {

   }

  void supersonicAndCommercial {

  }

  void supersonicAndJet {

 }

}

现在我需要将飞机类分解为子类。最常见的方法是什么? 这将是一个 2 级层次结构吗? IE 平面 Iface 亚音速,超音速延伸平面
4-Subclass Jet 延伸超音速,jet 延伸亚音速..等等

最佳答案

在 Java 中,类永远不能扩展多个类,因此这看起来像是接口(interface)的一项工作。您应该为亚音速、超音速、商业和战斗机制作界面。然后你可以像这样实现它们

public class SubCommercialPlane implements Subsonic, Commercial


public class SuperCommercialPlane implements Supersonic, Commercial


public class SubFighterPlane implements Subsonic, Fighter


public class SuperCommercialPlane implements Supersonic, Fighter

这可能是使用简单的 java 层次结构实现此目的的最佳方法。如果您想以更复杂的方式解决这个问题,请查看实体组件模型,这篇维基百科文章对此进行了很好的解释:

https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system

关于java - 如何构建两级继承层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440430/

相关文章:

Android 菜单代码位于单独的类文件中

javascript - 子类不起作用,为什么?

c# - 如何确保我们只有一个实例,并且以正确的方式处理它

c# - 用任何设计模式或更好的方法替换 if else 语句

java - 从应用程序服务器监听端口

java - Tapestry 中的所有嵌入组件

javascript - JavaScript 闭包返回的函数的范围和执行上下文

java - 如何根据空格数量分割字符串

java - com.facebook.FacebookException : could not construct request body

wpf - WPF中的应用程序屏幕管理