Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过 editing this post专注于一个问题。 4个月前关闭。 Improve this question 我目前正在执行一项任务,我必须在Java中构建一个铁路仿真项目(大学项目)。 有三种类型的机车车辆:旅行车,机车和多单元车。 所有类型的机车车辆都有名称和长度。 另外,还有货车和机车的三种类型。 Here是我创建的一个简单的UML图。 现在,我仍然必须实…

2020年11月28日 0条评论 28点热度 阅读全文

我有一个名为Item的类,它通过以下方式完成 public class Item { private static int nextId = 0; private double xCoord, yCoord; //location private double length, height; // define size of item private String spriteImage; private Tank tank; private String id; protected Item(double xC…

2020年11月25日 0条评论 39点热度 阅读全文

抽象类可以有构造函数吗? 如果是这样,它将如何使用以及用于什么目的? 解决方案如下: 是的,抽象类可以具有构造函数。考虑一下: abstract class Product { int multiplyBy; public Product( int multiplyBy ) { this.multiplyBy = multiplyBy; } public int mutiply(int val) { return multiplyBy * val; } } class TimesTwo extends Produc…

2020年11月24日 0条评论 35点热度 阅读全文

在Java中,抽象类和接口(interface)之间曾经存在细微但重要的区别:default implementations。抽象类可以有它们,接口(interface)不能。尽管Java 8引入了接口(interface)的默认实现,这意味着这不再是接口(interface)和抽象类之间的关键区别。 那是什么 尽我所知,唯一的区别(也许是一些效率方面的东西)是抽象类遵循传统的Java单继承,而接口(interface)可以具有多重继承(或者,如果有的话,可以实现多种实现)。这使我想到另一个问题- 新的Java 8…

2020年11月22日 0条评论 57点热度 阅读全文

Java 8允许在称为Default Methods的接口(interface)中默认实现方法。 我什么时候应该使用那种interface default method而不是abstract class(带有abstract method(s))之间感到困惑。 那么什么时候应该使用默认方法接口(interface),什么时候应该使用抽象类(带有抽象方法)?在这种情况下,抽象类仍然有用吗? 解决方案如下: 除了默认方法实现(例如私有(private)状态)之外,抽象类还有很多,但是从Java 8开始,无论选择哪种方法…

2020年11月11日 0条评论 43点热度 阅读全文

我有一个抽象类A和类B从它扩展出来。 public abstract class A { private String name; private String location; public A(String name,String location) { this.name = name; this.location = location; } public String getName() { return name; } public void setName(String name) { this.na…

2020年11月10日 0条评论 24点热度 阅读全文

在阅读了有关抽象类和接口的许多问题之后,我仍然不确定应该如何设计代码,因此冒着遗漏可能重复的风险,这就是我的情况。 我正在研究许多实用程序类,这些类旨在处理特定类型的对象的令人讨厌的层次结构。尽管对象的确切细节无关紧要,但只要说它不是一般解决方案就足够了。因此,我首先编写了CustomNode和CustomHierarchy类。 稍后,我意识到生成一个更通用的解决方案要聪明得多,该解决方案可以在不同的上下文中重用并易于测试,而不必创建上述复杂类的大量模拟实例。我可以轻松地在接口和抽象类中提供所有通用代码,而只需在需…

2020年10月30日 0条评论 37点热度 阅读全文

This question already has answers here: Can an abstract class have a constructor? (22个答案) 7年前关闭。 为什么Java中的 abstract类具有 constructor? 由于无法实例化 abstract类,它的构造是什么? 有什么想法吗? 解决方案如下: Java中的构造函数实际上并不“构建”对象,而是用于初始化字段。 想象一下,您的抽象类具有字段x和y,并且无论最终创建什么实际的具体子类,您始终希望以某种方式对其进行初始…

2020年10月30日 0条评论 42点热度 阅读全文

问题是在Java中为什么不能定义抽象的静态方法?例如 abstract class foo { abstract void bar( ); // <-- this is ok abstract static void bar2(); //<-- this isn't why? } 解决方案如下: 方法的abstract注释指示该方法必须在子类中被覆盖。 在Java中,static成员(方法或字段)不能被子类覆盖(在其他面向对象的语言中不一定是正确的,请参阅SmallTalk。)static成员可能是隐藏…

2020年10月29日 0条评论 34点热度 阅读全文

如何在C++中创建一个抽象类,该抽象类具有一些我想在子类中重写的抽象方法? .h文件应如何显示?是否有一个.cpp,如果看起来应该怎样? 在Java中,它看起来像这样: abstract class GameObject { public abstract void update(); public abstract void paint(Graphics g); } class Player extends GameObject { @Override public void update() { // ... …

2020年10月28日 0条评论 30点热度 阅读全文