假设我们有一个考试课程和一个课程作业课程,这两个课程都需要相同的属性,例如课程词/考试 ID、姓名、截止日期、重量等。
创建一个接口是否明智,以便两者都实现相同的方法,例如我在下面所做的?[ ][ 试图寻找最好的 OO 方法,只是不确定我是否有点矫枉过正。
谢谢
我认为最好的方法是创建一个 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了解更多信息)
希望能帮助到你!