ホームページ >Java >&#&チュートリアル >Javaのスーパーキーワード
Super は、スーパークラス内の関数またはメソッドを呼び出すために使用されるキーワードです。これはサブクラス内で定義されます。このキーワードを使用すると、パブリックで保護されたメソッドのみを呼び出すことができます。つまり、これを使用してプライベート メソッドや静的メソッドを呼び出すことはできません。 Java の super キーワードは、親クラスのコンストラクターを呼び出すために使用することもできます。 super キーワードの構文、例、および詳細については、次のセクションで説明します。
構文
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
super.<<method-name>> or super([0 or more arguments]);
すでに述べたように、super はさまざまな場面で使用できます。
親クラスと子クラスに同じデータ メンバーがある場合、Super キーワードを使用して親クラスのフィールドまたはデータ メンバーにアクセスできます。この場合、Java 仮想マシンのあいまいさが発生する可能性があります。
例:
コード:
class A { protected String name="ann"; } class B extends A { public String name="Anna"; public void hello() { System.out.println("I am " + name); System.out.println("I am " + super.name); } }
ここでは、2 つのクラス A と B が共通のフィールド名を持っています。子クラス内の関数 printType() は、super キーワードを使用して親クラスのフィールドを参照します。
メソッドのオーバーライドは、親クラスですでに使用可能なものと同じ関数またはメソッドを子クラスが宣言するプロセスです。子クラスのオブジェクトからメソッドの呼び出しが発生した場合、子クラスのメソッドのみが呼び出されるとします。親メソッドにアクセスするには、スーパーキーワードを使用できます。
例:
コード:
class A { protected String name="ann"; public void hello() { System.out.println("I am " + name); } } class B extends A { public String name="Anna”; public void hello() { System.out.println("I am " + name); } public void test() { hello(); super.hello(); } }
ここでは、2 つのクラス A と B が同じメソッド hello() を持っています。 test() 関数の super キーワードを使用すると、親クラスの hello() メソッドにアクセスできます。
クラスのオブジェクトが作成されると、コンストラクター (デフォルト) が自動的に呼び出されることはすでに知られています。 super キーワードを使用すると、サブクラスのコンストラクターからスーパークラスのコンストラクターを明示的に呼び出すことができます。 super がサブクラスのコンストラクター内でのみ使用され、それがサブクラス内の最初のステートメントであることを確認してください。
例:
コード:
class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } } //child class class B extends A { //constructor of child class B() { super(); System.out.println("I am Dileep Menon"); } }
以下に挙げたさまざまな例を示します:
次のプログラムでは、共通の変数名が存在し、親クラスの変数を呼び出すために super が使用されています。
コード:
//Java program to illustrate Super keyword to refer instance variable //parent class class A { protected String name="ann"; } //child classs class B extends A { public String name="Anna";//variable which is same in parent class //sample method public void hello() { System.out.println("I am " + name); System.out.println("I am " + super.name); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class objb.hello();//call the method in child class } }
出力:
このプログラムは、親クラスで同じメソッドを参照しながら super キーワードをデモンストレーションするのに役立ちます。ここで、hello() は両方のクラスで使用できるメソッドです。
コード:
//Java program to illustrate Super keyword to refer same method in parent class //parent class class A { protected String name="ann"; public void hello() { System.out.println("I am " + name); } } //child classs class B extends A { public String name="Anna";//variable which is same in parent class //sample method which is same in parent class public void hello() { System.out.println("I am " + name); } //method to call the hello() method in parent and child class public void test() { hello(); super.hello(); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class objb.test();//call the method in child class } }
出力:
このプログラムは、super キーワードを使用して親クラスのコンストラクターを呼び出します。
コード:
//Java program to illustrate Super keyword to refer constructor in parent class //parent class class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } } //child class class B extends A { //constructor of child class B() { super(); System.out.println("I am Dileep Menon"); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class } }
出力:
このプログラムは、親クラスのパラメーター化されたコンストラクターを参照するためのスーパー キーワードの使用法を示します。
コード:
//Java program to illustrate Super keyword to refer parameterised constructor in parent class //parent class class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } //parameterised constructor A(String name) { System.out.println("I am " + name); } } //child class class B extends A { //constructor of child class B() { super("Renuka"); System.out.println("I am Dileep Menon"); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class } }
出力:
Super は、親クラスのメソッドまたは関数、インスタンス変数または属性、およびコンストラクターを参照するために使用される Java のキーワードです。コンストラクターが宣言されていない場合、コンパイラーはデフォルトのコンストラクターを自動的に作成します。同様に、super() が宣言されていない場合、コンパイラは自動的に super() を呼び出します。このドキュメントでは、スーパー キーワードのいくつかの側面について詳しく説明します。
以上がJavaのスーパーキーワードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。