this 和 super 的区别:this, 先从本类找属性和方法,本类找不到再从父类找。super, 从父类找。
this 和 super 都可以调用构造方法,所以this() 和 super() 不可以同时出现。
public class Person { }
public class Student extends Person { String name; public Student(String name) { super(); // this(); } public Student() {} }
class FatherClass { public int value; public void f() { value = 100; System.out.println("FatherClass,value = " + value); } } class ChildClass extends FatherClass { public int value; public void f() { super.f(); value = 200; System.out.println("ChildClass,value = " + value); System.out.println(value); System.out.println(super.value); } } public class Demo { public static void main(String[] args) { ChildClass cc = new ChildClass(); cc.f(); } }