Java 类图关系接口

Java 类图关系接口,java,class,uml,diagrams,Java,Class,Uml,Diagrams,假设我们有一个用于考试的类和一个用于课程作业的类,这两个类都需要相同的属性,例如课程记录/考试id、名称、截止日期、权重等 明智的做法是创建一个接口,以便两者都实现相同的方法,如我在下面所做的那样? [][ 试图寻找最好的OO方法,只是不确定我是否有点过火 谢谢你我认为最好的方法是创建一个类,ClassWork和ClassExam都继承了这个类 父类ClassF将声明那些常规属性,而其他2个子类只需声明那些使它们唯一的特定属性,因为常规属性是由继承隐含的 我将试着用一个例子来解释:

假设我们有一个用于考试的类和一个用于课程作业的类,这两个类都需要相同的属性,例如课程记录/考试id、名称、截止日期、权重等

明智的做法是创建一个接口,以便两者都实现相同的方法,如我在下面所做的那样? [][ 试图寻找最好的OO方法,只是不确定我是否有点过火


谢谢你

我认为最好的方法是创建一个类,ClassWork和ClassExam都继承了这个类

父类ClassF将声明那些常规属性,而其他2个子类只需声明那些使它们唯一的特定属性,因为常规属性是由继承隐含的

我将试着用一个例子来解释:

       ClassF -> attributes: name, ID, weight, Date
              -> methods: getName() ....

             Exam -> attributes: marks 
                  -> methods: calculateMarks()...

             CourseWork -> attributes: typeOfCourse
                        -> methods: printInfoCourse()...
子类考试和课程作业可以实现并使用例如ClassF中的ID,因为它继承自其父类

也许决定是否允许ClassF的实例化是个好主意,因为在这种情况下,将ClassF转换为抽象类会很有趣


在这种具体情况下,使用接口实现这些类是一种错误的方法,因为这不是接口的功能(更多信息)


希望能有帮助!

啊,我喜欢这个想法。比如说,我想增加一个特定课程作业或考试的权重。例如:课程作业1=25%,课程作业2=25%,考试=50%。我该如何实施?方法是什么?如果我想有多个课程作业或考试呢?他们不需要自己的id吗?ClassF有那个方法,对吗?所以子类也有它,但是你想要每个子类有一个不同的行为,在这种情况下,你必须对ClassF方法进行@overrided。如果你想完全改变它或者只添加一些功能,这取决于你。顺便说一句,这是多态性!看,我理解的概念就是不能描绘出最好的方法这样做,我展示的图确实确保了多态性的使用在UML图中,您只需在所有将要实现的类(相同的名称和相同的参数)中编写方法的签名