0

超类:

public class Card 

{


 ...

       public boolean isExpired() //Card never expires.

       { 

             return false; 

       }

}

子类:

public class IDCard extends Card {}

public class PhoneCard extends Card {}

问:身份证和电话卡不会过期。你应该怎么做才能在你的实施中反映这个事实?

4

2 回答 2

1

仅供参考!我不是为你编写这个代码,因为它看起来像一个“学习练习”。

您可以实现超类的行为,以便实例Card 可以过期。并在必要时覆盖相关子类中的行为。然后,您需要确定“无法过期”的子类是使用还是忽略超类中表示卡是否过期的变量……并相应地实施。

或者,您可以将超类实现为一个abstract类并创建isExpired一个abstract方法。

我不会说哪个是“正确的方法”来做到这一点。我希望自己考虑清楚。

于 2013-06-21T00:43:09.207 回答
0

不要覆盖您的子类 IDCard 和 PhoneCard 中的 isExpired 方法,因为您的父类 Card 已经为您提供了“不要过期”行为。确保您的父类中是否有一个名为 isExpired 的字段,那么它应该是私有的并且不应该有设置器。

于 2013-06-21T00:39:28.553 回答