super 用法
super关键字用来访问父类内容,具体用法可分为三种:
1.子类的成员方法访问父类的成员变量
public class Animal {
public int age = 10;
}
class Dog extends Animal {
public int age = 5;
public void showAge() {
System.out.println(super.age);
}
}
2.子类的成员方法访问父类的成员方法
public class Animal {
public void fn(){
System.out.println("父类Animal的方法");
}
}
class Dog extends Animal {
@Override
public void fn() {
super.fn();
System.out.println("子类Dog的方法");
}
}
3.子类的构造方法访问父类的构造方法
public class Animal {
public Animal() {
System.out.println("父类Animal的构造方法");
}
}
class Dog extends Animal {
public Dog() {
super();
System.out.println("子类Dog的构造方法");
}
}
this 用法
this关键字用来访问本类内容,具体用法可分为三种:
1.本类的成员方法访问本类的成员变量
public class Dog extends Animal {
public int age = 1;
public void showAge() {
int age = 3;
System.out.println(age);
System.out.println(this.age);
}
}
2.本类的成员方法访问本类的另一成员方法
public class Dog extends Animal {
public int age = 1;
public void showAge() {
int age = 3;
System.out.println(age);
System.out.println(this.age);
}
public void fn() {
this.showAge();
}
}
3.本类的构造方法访问本类的另一个构造方法,此时this(…)调用必须放在这个构造方法中的第一句,且只能使用一次
public class Dog extends Animal {
public Dog() {
this(2);
System.out.println("无参构造");
}
public Dog(int age) {
System.out.println(age);
System.out.println("有参构造");
}
}
super和this内存图解
