ホームページ  >  記事  >  Java  >  Javaのスーパーキーワード

Javaのスーパーキーワード

王林
王林オリジナル
2024-08-30 15:44:39263ブラウズ

Super は、スーパークラス内の関数またはメソッドを呼び出すために使用されるキーワードです。これはサブクラス内で定義されます。このキーワードを使用すると、パブリックで保護されたメソッドのみを呼び出すことができます。つまり、これを使用してプライベート メソッドや静的メソッドを呼び出すことはできません。 Java の super キーワードは、親クラスのコンストラクターを呼び出すために使用することもできます。 super キーワードの構文、例、および詳細については、次のセクションで説明します。

構文

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

super.<<method-name>> or super([0 or more arguments]);

スーパーキーワードは Java でどのように機能しますか?

すでに述べたように、super はさまざまな場面で使用できます。

  • 直接の親クラスのインスタンス変数を参照します。
  • 直接の親クラスのメソッドを参照します。
  • 直接の親クラスのコンストラクターを参照します。

1.直接の親クラスのインスタンス変数を参照するには

親クラスと子クラスに同じデータ メンバーがある場合、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 キーワードを使用して親クラスのフィールドを参照します。

2.直接の親クラスのメソッドを参照するには

メソッドのオーバーライドは、親クラスですでに使用可能なものと同じ関数またはメソッドを子クラスが宣言するプロセスです。子クラスのオブジェクトからメソッドの呼び出しが発生した場合、子クラスのメソッドのみが呼び出されるとします。親メソッドにアクセスするには、スーパーキーワードを使用できます。

例:

コード:

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() メソッドにアクセスできます。

3.直接の親クラスのコンストラクターを参照するには

クラスのオブジェクトが作成されると、コンストラクター (デフォルト) が自動的に呼び出されることはすでに知られています。 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");  } }

Java のスーパーキーワードの例

以下に挙げたさまざまな例を示します:

例 #1

次のプログラムでは、共通の変数名が存在し、親クラスの変数を呼び出すために 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
}
}

出力:

Javaのスーパーキーワード

例 #2

このプログラムは、親クラスで同じメソッドを参照しながら 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
} }

出力:

Javaのスーパーキーワード

例 #3

このプログラムは、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のスーパーキーワード

例 #4

このプログラムは、親クラスのパラメーター化されたコンストラクターを参照するためのスーパー キーワードの使用法を示します。

コード:

//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
}
}

出力:

Javaのスーパーキーワード

結論

Super は、親クラスのメソッドまたは関数、インスタンス変数または属性、およびコンストラクターを参照するために使用される Java のキーワードです。コンストラクターが宣言されていない場合、コンパイラーはデフォルトのコンストラクターを自動的に作成します。同様に、super() が宣言されていない場合、コンパイラは自動的に super() を呼び出します。このドキュメントでは、スーパー キーワードのいくつかの側面について詳しく説明します。

以上がJavaのスーパーキーワードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。