1

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

创建一个接口是否明智,以便两者都实现相同的方法,例如我在下面所做的?[ 在此处输入图像描述][ 试图寻找最好的 OO 方法,只是不确定我是否有点矫枉过正。

谢谢

4

1 回答 1

1

我认为最好的方法是创建一个 Class 类, 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了解更多信息)

希望能帮助到你!

于 2016-02-11T20:23:16.547 回答