在java中绘制类图时,我有一个关于继承关系的简单问题。
我创建了一个具有多个属性和方法的类,称之为用户。
然后我创建了3个与父类具有继承关系的类。 打电话给他们(客户,供应商,管理员)。
我们知道继承关系,它继承了父类的所有属性和方法
我使用了类customer中的所有属性和方法,使用了类admin中的所有属性和方法,但我只在类供应商中使用了这些属性,并且在编写代码时不需要使用方法。
在面向对象编程的世界中这在逻辑上是正确的吗?
答案 0 :(得分:1)
如果您的供应商不应该使用这些方法,那么您需要创建另一个抽象类。下面是层次结构(*表示摘要)。
Person* -> SpecialPerson* -> Customer
Person* -> SpecialPerson* -> Admin
Person* -> Supplier
如果您的供应商在某些时候需要使用这些方法,那么您只需要简单地使用"扩展SpecialPerson"他们会被联系起来。这实际上取决于没有使用这些方法的原因。