我有四节课。 Person
类,以及另外三个类,Student
、Professor
、Tutor
,每个类都扩展了 Person 类。 Person 类有 2 个变量 studentID
和 staffID
。但是,只有学生可以拥有 studentID != null
,导师和教授可以拥有 staffID != null
。现在,在创建新对象 Student 时,如何确保无论 StaffID 是什么,始终保持为 null? StaffID 必须保留在 Person 类中,因此不能移动它。
最佳答案
继承的要点是,只有对父类有效的值和函数(成员)才会放置在父类中,而任何特定于子类的成员都会放置在子类中。
不要滥用面向对象,将 staffID
移动到您的子类中。
我的建议是创建一个包含 staffID
的 Staff
类,让它继承 Person
,然后继承 Professor
和 Tutor 继承自它。然后将 studentID
移动到 Student
类中。这样,只有 Professor
和 Tutor
可以访问 staffID
而 Student
则不能, 反之亦然学生ID
。所有类仍然可以分配给 Person
类型。
关于Java,如何让上层类的变量保持为null;如何从子类中获取 'hide'变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972538/