1

Javaの割り当てがあります。その要件は、モジュールと呼ばれるスーパータイプがあることを示しています。「必修モジュール」と「選択モジュール」の2つのサブタイプクラスがあります。前者はスーパークラスのすべての属性を継承します。後者には、部門名と呼ばれる追加の属性が 1 つあります。

Compulsory Module は Module と同じだと思います。スーパークラスと同じサブクラスを1つ定義すればOKです。すべてのモジュール インスタンスは、必須または選択的でなければなりません。他のタイプのモジュールはありません。実際の状況で使用するクラスを決定するときに混乱したくないので、モジュールを抽象クラスとして定義する必要があります。または、誰かが私にいくつかの手がかりを与えることができます。

4

2 に答える 2

0

あなたが尋ねるべき質問は次 のとおりです:選択モジュールは必須モジュールですか?この場合、選択モジュールを強制モジュールのスーパークラスにすることができます。

Javaのポリモーフィズムは、「isa」という関係に変換されます 。

(割り当てでは、Moduleクラスが抽象である必要があることは明らかです。ElectiveModuleクラスと同じ「動作」を持っているためです。)

于 2013-02-11T08:45:37.620 に答える
0

あなたの質問に答えがあるようです。CompulsoryModule には追加の属性がなく、Module を拡張するだけですが、3 つのクラスが必要なようです。

モジュール自体は抽象的でもそうでなくてもかまいません。それはあなたが何を達成しようとしているかによって異なります。場合によっては、スーパー クラス Module を非抽象クラスとして定義することはできません。

たとえば、Module に、CompulsoryModule または ElectiveModule を使用しない限り実装方法がわからないメソッドがある場合、そのメソッドを抽象として定義し、クラス全体を抽象化する必要があります。

さらに、クラスを抽象化すると、誰もそのクラスのインスタンスを作成できなくなり、サブクラスをインスタンス化することしかできなくなります。繰り返しになりますが、特定のものがモジュール自体で完全に定義されておらず、スーパークラスのコードを理解するために特定のサブクラスが必要な場合に必要です。

于 2013-02-11T08:59:16.857 に答える