ホームページ >バックエンド開発 >C#.Net チュートリアル >C#の補足知識(4):継承
メソッドの書き換え:
基本クラスのメソッドは仮想キーワードを識別し、サブクラス (継承クラス) のメソッドの書き換えはオーバーライド キーワードを識別します。
オーバーライドされたメソッドは、メソッド名、戻り値、受け入れられるパラメーターなど、基本クラスと同じ型を持つ必要があります。
public class Class1 { public virtual void show(int i) {……} } public class Class2:Class1 { public override void show(int a) {……} }
新しいメソッドの書き換え:
public class Class1 { protected virtual void show(int i) {……} } public class Class2:Class1 { public new int show(int a) {……} }
新しいステートメントは、同じ名前の独自のメソッドを定義します。戻り値の型とアクセス型は、基本クラスの同じ名前のメソッドとは異なる場合があります。
受け入れられたパラメータが同じ名前の基本クラスのメソッドのパラメータと異なる場合、新しいキーワードは冗長になり、これは一般的な書き換えと同等になります (基本クラスは同じメソッドまたは同じ隠しメソッドを持ちません)。
override は基本クラスのメソッド (隠しメソッド) のメソッド本体を書き換え、new は同じ名前の基本クラスのメソッド (同じパラメーターを受け取る) を書き換えます。
相続の終了:
継承を終了します。次のコードはコンパイル エラーです。Class2 は閉じたクラス Class1 を継承できません
public sealed class Class1 { public virtual void show(int i) {……} } //public class Class2:Class1 //{ // public override void show(int a) // {……} //}
基本クラス コンストラクターを呼び出します:
コンパイラーは最初に基本クラス コンストラクターを呼び出し、次に継承されたクラス コンストラクターを呼び出します。
public class Class1 { public Class1(int i , string j) {……} } public class Class2:Class1 { public Class2(int i,string j,object obj):base(i,j) {……} }
以上が C# の豆知識 (4): 継承の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。