0

スーパークラス:

public class Card 

{


 ...

       public boolean isExpired() //Card never expires.

       { 

             return false; 

       }

}

サブクラス:

public class IDCard extends Card {}

public class PhoneCard extends Card {}

質問: ID カードとテレフォン カードに有効期限はありません。この事実を実装に反映させるにはどうすればよいでしょうか?

4

2 に答える 2

1

ヒントのみ!「学習演習」のように見えるので、これをコーディングしていません。

のインスタンスを期限切れにCard できるように、スーパークラスの動作を実装できます。必要に応じて、関連するサブクラスで動作をオーバーライドします。次に、「期限切れにならない」サブクラスが、カードの有効期限が切れているかどうかを示すスーパークラスの変数を使用するか無視するかを決定し、それに応じて実装する必要があります。

または、スーパークラスをクラスとして実装し、メソッドabstractを作成することもできます。isExpiredabstract

これを行うための「正しい方法」とは言いません。そこは自分で考えてほしい。

于 2013-06-21T00:43:09.207 に答える
0

サブクラスの IDCard と PhoneCard で isExpired メソッドをオーバーライドしないでください。親クラスの Card が既に「期限切れにならない」動作を提供しているためです。親クラスに isExpired というフィールドがあるかどうかを確認してください。それはプライベートであり、セッターはありません。

于 2013-06-21T00:39:28.553 に答える