类图关系接口

时间:2016-02-11 19:58:03

标签: java class uml diagrams

假设我们有一个考试班和一个课程班,这两个都需要相同的属性,如课程/考试ID,姓名,截止日期,重量等。

创建一个接口是否明智,以便两者都实现相同的方法,例如我在下面所做的事情? [enter image description here] [ 试图寻找最好的OO方法,只是不确定我是否会有点矫枉过正。

谢谢

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是创建一个ClassWork和ClassExam继承的类。

父类ClassF将声明这些通用属性,而其他2个子类只需要声明那些使它们唯一的特定属性,因为继承隐含了一般属性。

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

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

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

             CourseWork -> attributes: typeOfCourse
                        -> methods: printInfoCourse()...

子类Exam和CourseWork可以实现和使用例如来自ClassF的ID,因为它是从其父类继承的。

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

仅仅为了具体案例中的记录,使用接口来实现这些类是一种错误的方法,因为这不是接口的功能(https://docs.oracle.com/javase/tutorial/java/concepts/interface.html以获取更多信息)

希望它有所帮助!