Java的变量重名问题及关键字 this super 关键之的使用
-
下面代码中有三个 name 但是定义的位置均不相同 以以这段代码来解释
- Father类
public class Father { String name = "这是父类的名字"; }
- Son 类(继承了父类的变量)
public class Son extends Father{ private String name = "这是子类的名字"; public void printSonName(){ String name = "这是方法内的name"; System.out.println("name" + name); // 这是方法内的name System.out.println( "this.name" +this.name); //这是子类的名字 System.out.println("super.name" + super.name); // 这是父类的名字 } public static void main(String[] args) { Son son = new Son(); son.printSonName(); } }
-
控制台输出
-
根据代码和控制台输出可得出
3.1 name调用方法内的变量
3.2 this 调用本类中的变量
3.3 super 调用父类中的变量