我真的很难想到java中的抽象类和接口类?这里有一个例子:我们有两个用户在学校系统中有相同和不同的动作老师:可以添加练习和查看练习学生:可以查看和提交练习我们有两个不同的用户,不同的动作和相同的动作。那么我们怎样才能把它变成一个抽象类和接口呢?
mrwjdhj31#
不应该只有一个类——行为不同的事物应该由不同的类来表示。如果要使用接口和抽象类。。。为共享行为创建接口:
interface ExerciseViewer { void view(Exercise exercise); }
然后为扩展抽象基类的每种类型的人创建具体类:
abstract class SchoolPerson implements ExerciseViewer { public void view(Exercise exercise) { // some implemention } } class Teacher extends SchoolPerson { public void add(Exercise exercise) { // some implementation } } class Student extends SchoolPerson { public void submit(Exercise exercise) { // some implementation } }
但是,我不会这样做。相反,我将创建两个具体的类来实现没有方法的exerciseviewer(参见marker interface),一个exercise类和一个单独的exerciseservice类来处理具有适当参数类型的操作。
1条答案
按热度按时间mrwjdhj31#
不应该只有一个类——行为不同的事物应该由不同的类来表示。
如果要使用接口和抽象类。。。
为共享行为创建接口:
然后为扩展抽象基类的每种类型的人创建具体类:
但是,我不会这样做。相反,我将创建两个具体的类来实现没有方法的exerciseviewer(参见marker interface),一个exercise类和一个单独的exerciseservice类来处理具有适当参数类型的操作。