super关键字用来访问父类内容,super关键字的用法有三种:
1. 在子类的成员方法中,访问父类的成员变量。
2. 在子类的成员方法中,访问父类的成员方法。
3. 在子类的构造方法中,访问父类的构造方法。
this关键字用来访问本类内容。用法也有三种:
1. 在本类的成员方法中,访问本类的成员变量。
2. 在本类的成员方法中,访问本类的另一个成员方法。
3. 在本类的构造方法中,访问本类的另一个构造方法。
在第三种用法当中要注意:
A. this(...)调用也必须是构造方法的第一个语句,唯一一个。
B. super和this两种构造调用,不能同时使用。
public class Fu { int numFu=20; int num=11; public Fu() { System.out.println("父类无参构造"); } public Fu( int num) { System.out.println("父类有参构造"); } public void method(){ System.out.println("父类的方法"); } } =================== public class Zi extends Fu{ int numZi=40; int num=12; public Zi() { super(); //写生super()就不再赠送super() } @Override public void method() { super.method(); System.out.println("子类完善父类方法"); } public void methodZi() { System.out.println("父类成员变量为"+super.num); System.out.println("子类成员变量为"+this.num); } } ============================== public class demoThisSuper { public static void main(String[] args) { Zi one=new Zi(); System.out.println(one.num); one.method(); one.methodZi(); } }