ホームページ >Java >&#&はじめる >Javaのthisとsuperの違いは何ですか?

Javaのthisとsuperの違いは何ですか?

王林
王林転載
2020-08-03 16:55:444402ブラウズ

Javaのthisとsuperの違いは何ですか?

これは、オブジェクト自体を表す独自のオブジェクトです。その使用方法は、次の 3 つのカテゴリに大別されます。

(推奨チュートリアル: java入門チュートリアル )

1. 現在のオブジェクト自体への通常の直接参照

2. 仮パラメータとメンバー名は同じ名前なので、区別するためにこれを使用します

3.参照コンストラクター this(parameter ) は、このクラスの別の形式のコンストラクターを呼び出す、コンストラクター内の最初のステートメントである必要があります。

public class Demo{
     String name;
 
    public void setName(String name) {
       this.name = name;// 前一个name是 本类的成员属性: name;       
                       //  后一个name是setName中的参数。
    }
   public static void main(String[]args){
          
           Demo m=new Demo();
           m.setName("旺旺");
   }
   }

Super は、自身のスーパー (親) クラス オブジェクトを指すものとして理解できます。このスーパー クラスは、それ自体に最も近い親クラスを参照します。また、大きく 3 つの用途に分かれています:

(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)

1. 通常の直接引用。これと同様ですが、次の点が異なります。親クラスのメンバーを呼び出すことができる親クラスのオブジェクト。

2. サブクラスのメンバー変数またはメソッドは、親クラスのメンバー変数またはメソッドと同じ名前を持ち、スーパーで区別できます。

3. 参照コンストラクター、スーパー (パラメーター): 親クラスの特定のコンストラクターを呼び出します (コンストラクターの最初のステートメントである必要があります)

public class Main extends teacher{
	public static void main(String[] args) {
		//super();
	}
	public Main(){
		this();
		super();//出错,this()与super()不能同时出现,且this(),super()都必须在第一行
	}
}

class teacher {
}

属性間の違い: this 属性にアクセスしますこのクラスにこの属性がない場合は、親クラスから検索を続けます。 super は、親クラスのプロパティにアクセスします。

メソッドの違い: このクラスのメソッドにアクセスします。このクラスにこのメソッドがない場合は、親クラスから検索を続けます。 super は親クラスのメソッドにアクセスします。

構築の違い: これはこのクラスの構築を呼び出し、構築メソッドの最初の行に配置する必要があります。 super は親クラスのコンストラクターを呼び出し、サブクラスのコンストラクター メソッドの最初の行に配置する必要があります。

その他の違い: これは現在のオブジェクトを表します。 super は現在のオブジェクトを表すことはできません。

以上がJavaのthisとsuperの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。