次の方法で共有


オーバーロードとオーバーライドのキーワードのサンプル

更新 : 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 については、すべてのサンプルがオンラインで提供されています。

詳細については、「サンプル ファイルの格納場所」を参照してください。

hczke3bz.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

このサンプルを実行するには

  • F5 キーを押します。

使用例

このアプリケーションは、輸送手段登録システムをシミュレートしたもので、自動車、ボート、および自転車をサポートしています。

このアプリケーションでは、Vehicle という基本クラスを使用し、そこから Automobile、Boat、および Bicycle の各クラスを派生しています。それぞれの派生クラスでは、基本クラスを何らかの方法で拡張しています。たとえば、基本クラスのメソッドをオーバーライドする、独自の新しいメソッドまたはプロパティを実装する、基本クラスのメンバを置換 (シャドウ) するなどです。また、DepartmentOfMotorVehicles という Friend クラスもあります。このクラスは、データベースに対するデータの読み込みと書き込みをシミュレートします。

このアプリケーションでは、クラスおよびそのメンバでの以下のステートメントおよび修飾子の使用例を示します。

キーワード

使用方法

Inherits ステートメント

Automobile、 Boat、および Bicycle で使用しており、 Vehicle が基本クラスであることを示します。

NotInheritable

DepartmentOfMotorVehicles クラスで使用しています。このクラスは基本クラスになれません。

MustInherit

Vehicle クラスで使用しています。 Vehicle を派生したクラスでないとインスタンス化できません。

Overloads

Boat クラスの Register メソッドはオーバーロードされており、最大乗客数が追加されています。

Overridable

Vehicle クラスの ID プロパティで使用しています。基本クラスで実装されていますが、派生クラスでも別のバージョンを実装できます。

Overrides

3 つの派生クラスすべてにおいて、CurrentValue プロパティに使用されており、基本クラスの既定の実装を置き換えます。

MustOverride

Vehicle クラスのメンバ (ComputeRegistrationFee および Salary) で使用しています。これらのメンバは Vehicle では実装されておらず、MustInherit と指定されていない派生クラスで実装する必要があります。

Shadows

Bicycle クラスの Register メソッドで使用しています。

Public (Visual Basic)

クラスおよびそのメンバで使用しており、クラスまたはメンバをクライアント アプリケーションが利用できることを示します。

Protected (Visual Basic)

Vehicle クラスのフィールドで使用しています。これらのフィールドは、Vehicle クラスおよび派生クラスからはアクセスできますが、クライアント アプリケーションからはアクセスできません。

Friend (Visual Basic)

DepartmentOfMotorVehicles クラスで使用しています。このクラスはアセンブリで使用されますが、クライアント アプリケーションではアクセスできません。

Private (Visual Basic)

クラスのフィールドで使用しています。これらのフィールドはクライアント アプリケーションではアクセスできません。

Shared (Visual Basic)

DepartmentOfMotorVehicles クラスのメソッドで使用しています。これにより、DepartmentOfMotorVehicles クラスを関数ライブラリのように利用できます。

参照

その他の技術情報

Visual Basic におけるオブジェクト指向プログラミング