我们正在学习UML课程。老师说:
如果每个类都作为基类使用,则应将其声明为抽象类 它的派生类。
在下图中假设我们想要从class german shepherd
派生class labrador
和class chien (Dog woof woof)
。 class chien
是否有义务成为抽象类?
答案 0 :(得分:5)
不一定。
这种说法不一定正确。更正确的陈述是:
如果在没有引用具体派生类的情况下无法实例化每个类,则应将其声明为抽象类。
在您的示例中,Dog
和Animal
是抽象的是有意义的,因为您有更多特定的类可能会填写基类没有的详细信息。
但是,当然可以有一个具体的类,可以实例化(因此不是抽象的),但仍然可以作为另一个类的基础。
答案 1 :(得分:1)