了解Java Super和Sub类构造函数与方法之间的关系

这可能有点笼统,如果太多的话,我深表歉意。它与大学课程的作业有关,因此,我想着重于我对主题的理解,而不是答案。 据我了解情况: 我有一个称为pet的父类,还有两个称为Dog和Cat的子类。 UML类图指定Pet包含方法createPet(),updatePet()和petCheckIn()。 petCheckIn()需要具有创建对象(如果尚未创建)和更新对象的能力。

这两个子类包含默认构造函数,属性的设置器和获取器,但没有其他特定于它们的属性。

我不认为会出现需要宠物对象的情况,因为被检入的宠物总是狗或猫。如果构造函数不是子类继承的,而方法是继承的,并且createPet()并不是严格意义上的构造函数,那么如果设计合理,继承的方法可以执行构造函数吗?我觉得实现应该是这样的(我不太关心确切的语法,因为我理解在这里可以做什么和不能做什么):

Execute Dog/Cat inherited petCheckIn()
   IF new pet THEN
      Execute Dog/Cat inherited createPet()

   ELSE
      Execute Dog/Cat inherited updatePet()

这是入门级的类,因此我无法想象实现会非常复杂。 我可能误会了某些事情/过于复杂。

无论如何,谢谢您的宝贵时间。

评论