Han*_*Goc 0 polymorphism uml class object abstract
我们正在学习UML课程.老师说:
如果每个类都充当其派生类的基类,则应将其声明为abstract.
在下图中,假设我们要获得class german shepherd并class labrador从class chien (Dog woof woof).是否有义务class chien成为一个抽象的阶级?
不必要.
这种说法不一定正确.更正确的陈述是:
如果在没有引用具体派生类的情况下无法实例化每个类,则应将其声明为抽象类.
在您的示例中,它是有意义的Dog并且Animal是抽象的,因为您有更多特定的类可能会填写基类没有的细节.
但是,当然可以有一个具体的类,可以实例化(因此不是抽象的),但仍然可以作为另一个类的基础.