Javaベース-superとthis解析
1.superキーワードはスーパー(親)クラスの意味を表します.this変数はオブジェクト自体を表します.
2.superが親布団類に隠された変数または上書きにアクセスする方法.現在のクラスがスーパークラスから継承する場合、superが呼び出される.XX()は、ベースクラスバージョンを呼び出すXX()メソッドです.
スーパークラスは最近の親です.
3.super()親コンストラクション関数を呼び出すときは、子コンストラクション関数の最初の行のみ呼び出すことができます.
4.thisはクラス内の非静的メソッドでのみ使用でき、静的メソッドと静的コードブロックでは絶対にthisは表示されません.これは「Javaキーワードstatic、final使用概要」で明確に説明されています.そしてthisは特定のオブジェクトにのみ関連付けられ、クラスには関連付けられず、同じクラスの異なるオブジェクトには異なるthisがあります.
列:
2.superが親布団類に隠された変数または上書きにアクセスする方法.現在のクラスがスーパークラスから継承する場合、superが呼び出される.XX()は、ベースクラスバージョンを呼び出すXX()メソッドです.
スーパークラスは最近の親です.
3.super()親コンストラクション関数を呼び出すときは、子コンストラクション関数の最初の行のみ呼び出すことができます.
4.thisはクラス内の非静的メソッドでのみ使用でき、静的メソッドと静的コードブロックでは絶対にthisは表示されません.これは「Javaキーワードstatic、final使用概要」で明確に説明されています.そしてthisは特定のオブジェクトにのみ関連付けられ、クラスには関連付けられず、同じクラスの異なるオブジェクトには異なるthisがあります.
列:
class Person {
protected void print() {
System.out.println("The print() in class Person.");
}
}
public class DemoSuper extends Person {
public DemoSuper(){
super(); // , , ,
}
public void print() {
System.out.println("The print() in class DemoSuper.");
super.print();//
}
public static void main(String[] args) {
DemoSuper ds = new DemoSuper();
ds.print();
}
}