ここで、CD や DVD を保存するためのメディア ライブラリを作成します。 CD と DVD をメディア ライブラリに追加し、メディア ライブラリ内のすべての CD と DVD を一覧表示できます。
私たちは継承の概念を使用します。CD はオブジェクトであり、DVD もオブジェクトです。名前、再生時間、コメントなど、この 2 つの間には多くの類似点があります。将来の管理とデバッグを容易にするために、Item という親クラスを作成しました。この親クラスには CD と DVD という 2 つのサブクラスがあります。
次に、それらを管理するためのクラス (オブジェクト) を作成する必要があります。このオブジェクトには、メディア ライブラリとしての ArrayList のメンバー変数、CD または DVD を追加するための add 関数、およびメディア内のすべてをリストするための list 関数があります。図書館。このクラスに Database という名前を付けます。この方法で、次の4つのJavaソースファイルを作成する必要があります:
Sourceコード:
rrereerreerrereerreeerun:nere 2つの概念がここにあります。親クラスの下に 2 つのサブクラスがあります。 データベースの 9 行目: この項目はオブジェクト変数 item を定義します。この項目は単なる変数であり、オブジェクトのマネージャーです。必要なオブジェクトはまだありません。 main 関数では、項目に CD または DVD を割り当てることができるため、項目変数は、プログラムの実行時に応じて管理する必要があるオブジェクトのみを知ることができます。この項目は多態性変数です。
上向きモデリング: 上向きモデリングは、親クラスのオブジェクト変数にサブクラス オブジェクトを与えること、またはデータベースの db.add と同じように、CD またはサブクラス オブジェクトを親クラスのオブジェクトとして使用することと考えてください。 itemのItemクラスのオブジェクト変数にDVDを与えます。常に上向きにスタイリングするのが安全です。
------------------------------------------------ -------------------------------------------------- ------------------
次にポリモーフィズムがあります: データベースの実行プロセスの 15 行目に、 item.printという文があります。これは、Item で print 関数を呼び出しているように見えますが、プログラムの実行結果から、これは明らかに CD.print() の呼び出しの結果であることがわかります。 DVD.print();。
Item.print():
CD.print():
DVD.print(): これは多態性を使用して説明する必要があります: まず、サブクラスと親の場合クラス内に同名の関数がある場合、サブクラスの関数が親クラスから継承した同名の関数をオーバーライドするため、親クラスの関数は隠蔽され動作しなくなります。次に、データベースの 15 行目の項目は、それ自体の項目クラスを管理するか、そのサブクラスを管理するかを確認します。そのサブクラスの場合、print 関数はそのサブクラスの print 関数を使用します。