我有2个课程,只需将其称为Customer
和Stuff
,Customer
具有属性(ID,姓名,地址以及getter和setter)和Stuff
类具有( Id,Name,Stock以及getter和setter)。基于这些类属性,Customer
和Stuff
类具有2个类似的属性和方法(Id,name,getId(),getName()和setId(参数),setName(参数))。所以我创建了一个抽象类作为基类,包含(Id,Name,getter和setter),只需将其称为myBaseClass
,所以我只需要将myBaseClass扩展到我的Customer
和Stuff
类而不是在每个类中写(Id,Name,getter和setter)属性。
我在想我的创建没有问题,直到我的朋友告诉我我的班级不应该使用继承,只需在每个Customer和Stuff类上写attribute and method(Id,Name)
因为,Customer和Stuff类没有像动物和老虎这样的关系,因为老虎是一种动物。
我是否仍然在每个Customer和Stuff Class中使用继承或只为(Id, name,getter and setter)
键入更多内容?
答案 0 :(得分:2)
没有"对"回答这个问题。
继承可能很脆弱,在OO世界中,你应该支持Composition over Inheritance。我同意你的朋友,这两个类是独立的,不应该共享继承层次结构。
但是,如果您在某个时候以类似的方式对待它们,则可以在需要时实现可重用的接口。
然而,在这种情况下 - 除非有业务需要,否则我不会将这些课程结合在一起。
答案 1 :(得分:0)
你的朋友是对的,这两个类之间没有关联,所以创建一个他们都延伸的抽象类不应该完成。但我并不同意你应该创建一个单独的属性类,因为属性类不会有任何特殊的方法,只会有返回和设置值的方法。据我所知,这两个类的属性之间没有关联,所以我相信这只会过度,你应该保留它。
答案 2 :(得分:0)