Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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_Class_Graph_Nodes_Abstract - Fatal编程技术网

Java中的抽象类

Java中的抽象类,java,class,graph,nodes,abstract,Java,Class,Graph,Nodes,Abstract,所以,我有一个面向对象的任务要做。它的一小部分是制作一个由节点组成的图形,可以是类型类别,也可以是类型产品 该类别只有一个名称[a-zA-Z0-9]+作为参数 产品名称为[a-zA-Z0-9]+且id>=0 一开始,a只创建了一个节点,产品中有两个对象类别,其中都为null,根据输入,我创建了这两个对象中的一个的实例,一切正常 我真的很认真地思考了一下,在我检查了讲座之后,我发现了关于抽象类的东西:D。不,我的想法是使节点抽象,并扩展产品和类别节点,因为: 类别具有用于名称和toString的s

所以,我有一个面向对象的任务要做。它的一小部分是制作一个由节点组成的图形,可以是类型类别,也可以是类型产品

该类别只有一个名称[a-zA-Z0-9]+作为参数

产品名称为[a-zA-Z0-9]+且id>=0

一开始,a只创建了一个节点,产品中有两个对象类别,其中都为null,根据输入,我创建了这两个对象中的一个的实例,一切正常

我真的很认真地思考了一下,在我检查了讲座之后,我发现了关于抽象类的东西:D。不,我的想法是使节点抽象,并扩展产品和类别节点,因为:

类别具有用于名称和toString的setter和getter 产品有setter和getter作为Name和ID,当然还有toString

名称的Setter、getter和toString是相同的。 Product的构造函数有一个不同之处,因为它还设置了ID

所以, 这样行吗,更好吗?
我是否可以创建一个节点,然后在输入后说->这个节点来自类型category

,如果它是抽象的,就不能创建一个节点

您应该获得输入,可能是想要创建的类型,并为该类型创建适当的非抽象类


或者,您可以将它们创建为类别,如果用户键入Id,则创建新产品并将数据从第一个对象复制到第二个对象。但这并没有多大意义。

似乎类别应该只是产品的一部分。也就是说,您有一个category类和一个product类,它有两个属性:category类和id。这样,您可以从图形上的任何点创建一个类别,如果它是产品,将它传递给第二个构造函数以给它一个id。

我认为这应该是一个抽象方法,以验证每个节点类型都可以独立实现

Node表示这是您正在导航的状态图。也许您希望在进入或离开该状态时触发一个方法。每种类型都可以放入所需的任何内容。接口和策略模式在这方面会有所帮助

将图表与所做的事情分开。

你的问题目前确实很抽象。考虑添加一些代码以使其具体化。