C#でJavaのsuperキーワードに相当するもの
Javaのsuperキーワードに相当するものは、C#ではbaseキーワードです。
Javaのsuperキーワードとは
Javaのsuperキーワードは、直近の親クラス(スーパークラス)のインスタンスを参照します。主な用途は以下の2つです。
- スーパークラスとサブクラスに同名のメンバーが存在する場合に、両者を区別するために使用する
- サブクラスからスーパークラスのコンストラクタを呼び出すために使用する
C#のbaseキーワードとは
C#のbaseキーワードは、基底クラスのコンストラクタやメソッドにアクセスするために使用されます。インスタンスメソッドやコンストラクタなどの内部で呼び出します。派生クラスで同じ名前のメンバーが定義され、基底クラスのメンバーが隠ぺいされている場合に、明示的に基底クラス側へアクセスしたいときに特に役立ちます。
それでは、C#のbaseキーワードの具体的な使用例を見てみましょう。
サンプルコード
using System;
public class Animal {
public string repColor = "brown";
}
public class Reptile : Animal {
string repColor = "green";
public void display() {
Console.WriteLine("Color: " + base.repColor);
Console.WriteLine("Color: " + repColor);
}
}
public class Demo {
public static void Main() {
Reptile rep = new Reptile();
rep.display();
}
}実行結果
Color: brown Color: green
この例では、ReptileクラスはAnimalクラスを継承しており、両方のクラスにrepColorというフィールドが定義されています。base.repColorと記述することで基底クラスの値「brown」を参照し、単にrepColorと記述した場合は派生クラス自身の値「green」を参照しています。このように、baseキーワードを使うことで、名前が重複するメンバーを明確に区別できます。
-
Javaのfinalキーワードとは?変数・メソッド・クラスでの使い方を解説
finalは、Javaにおける非アクセス修飾子のひとつです。クラス、メソッド、変数の実装を「確定」させるために使用され、これらが後から変更されることを防ぐ役割を持ちます。本記事では、finalキーワードの基本的な概念と、変数・メソッド・クラスそれぞれでの使い方をコード例とともに解説します。final変数final変数は、明示的に初期化できるのは一度だけです。また、finalで宣言された参照変数は、別のオブジェクトを参照するように再代入することはできません。ただし、オブジェクト内部のデータ自体は変更可能です。つまり、オブジェクトの「状態」は変えられるものの、「参照先」は変えられないという点に注意
-
Javaのsuperキーワードとは?使い方とサンプルコードを徹底解説
JavaのsuperキーワードとはJavaにおけるsuperキーワードは、サブクラスから直接の親クラス(スーパークラス)のメンバーやコンストラクタへアクセスするために使われる重要なキーワードです。主な役割は以下の3つです。親クラスのインスタンス参照:super変数は、直近の親クラスのインスタンスを参照します。親クラスのメソッド呼び出し:superを使うことで、オーバーライドされた親クラスのメソッドを呼び出せます。親クラスのコンストラクタ呼び出し:super()は親クラスのコンストラクタとして機能し、子クラスのコンストラクタ内では必ず最初の行に記述する必要があります。特に、オーバーライドされたメ