Java扩展了替代品

ved*_*ran 3 java extends subclass implements

我正在努力建立我们大学课程管理系统的模型(课程).我偶然发现了一个扩展的小限制,也就是说,某个类不可能扩展两个类.这是模型:

                     Professor
                    /                  
             Staff
          /          \                       
    Person            Tutor            
           \         /      
             Student            
Run Code Online (Sandbox Code Playgroud)

因此,我得到了员工和学生扩展人员和教授扩展员工.现在我与班级导师有一个小小的困境,他基本上是一名学生(有学生ID),但在某种意义上是大学员工(担任小组讲座,负责某个项目等).既然不能使用两个延伸,有什么其他选择,如果可能的话可能有人给一个非常简单的例子工具?我已经看过它的一个接口示例,但我不确定我如何在我的程序中使用它,因为Student不是一个接口?

Mar*_*eel 8

不要使用继承,使用组合:每个人都是一个人,但有一个或多个角色:学生,导师,教授,工作人员.

或者可选地在Staff和Student之间进行划分并允许他们拥有角色.然后角色决定他们能做什么或不能做什么.