オーバーロードとオーバーライドのキーワードのサンプル
更新 : 2007 年 11 月
このサンプルでは、オーバーロードやオーバーライドなどの Visual Basic の言語機能を使用して派生クラスを拡張する方法の例を示します。また、Public、Private、および Protected を使用して、クラスのメンバに対するさまざまなレベルのアクセスを実現する方法も示します。
サンプルとそのインストール手順を取得するには
次のいずれかを実行します。
[ヘルプ] メニューの [サンプル] をクリックします。
サンプルの情報を示す Readme が表示されます。
Visual Studio 2008 のサンプルの Web サイトにアクセスします。ここには、サンプルの最新版が掲載されています。
Visual Studio をインストールしたコンピュータで、サンプルを検索します。既定では、サンプルおよび Readme ファイルは drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid にインストールされています。Visual Studio の Express Edition については、すべてのサンプルがオンラインで提供されています。
詳細については、「サンプル ファイルの格納場所」を参照してください。
セキュリティに関するメモ : |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
このサンプルを実行するには
- F5 キーを押します。
使用例
このアプリケーションは、輸送手段登録システムをシミュレートしたもので、自動車、ボート、および自転車をサポートしています。
このアプリケーションでは、Vehicle という基本クラスを使用し、そこから Automobile、Boat、および Bicycle の各クラスを派生しています。それぞれの派生クラスでは、基本クラスを何らかの方法で拡張しています。たとえば、基本クラスのメソッドをオーバーライドする、独自の新しいメソッドまたはプロパティを実装する、基本クラスのメンバを置換 (シャドウ) するなどです。また、DepartmentOfMotorVehicles という Friend クラスもあります。このクラスは、データベースに対するデータの読み込みと書き込みをシミュレートします。
このアプリケーションでは、クラスおよびそのメンバでの以下のステートメントおよび修飾子の使用例を示します。
キーワード |
使用方法 |
---|---|
Automobile、 Boat、および Bicycle で使用しており、 Vehicle が基本クラスであることを示します。 |
|
DepartmentOfMotorVehicles クラスで使用しています。このクラスは基本クラスになれません。 |
|
Vehicle クラスで使用しています。 Vehicle を派生したクラスでないとインスタンス化できません。 |
|
Boat クラスの Register メソッドはオーバーロードされており、最大乗客数が追加されています。 |
|
Vehicle クラスの ID プロパティで使用しています。基本クラスで実装されていますが、派生クラスでも別のバージョンを実装できます。 |
|
3 つの派生クラスすべてにおいて、CurrentValue プロパティに使用されており、基本クラスの既定の実装を置き換えます。 |
|
Vehicle クラスのメンバ (ComputeRegistrationFee および Salary) で使用しています。これらのメンバは Vehicle では実装されておらず、MustInherit と指定されていない派生クラスで実装する必要があります。 |
|
Bicycle クラスの Register メソッドで使用しています。 |
|
クラスおよびそのメンバで使用しており、クラスまたはメンバをクライアント アプリケーションが利用できることを示します。 |
|
Vehicle クラスのフィールドで使用しています。これらのフィールドは、Vehicle クラスおよび派生クラスからはアクセスできますが、クライアント アプリケーションからはアクセスできません。 |
|
DepartmentOfMotorVehicles クラスで使用しています。このクラスはアセンブリで使用されますが、クライアント アプリケーションではアクセスできません。 |
|
クラスのフィールドで使用しています。これらのフィールドはクライアント アプリケーションではアクセスできません。 |
|
DepartmentOfMotorVehicles クラスのメソッドで使用しています。これにより、DepartmentOfMotorVehicles クラスを関数ライブラリのように利用できます。 |