this
与super
都是一个表示对象的引用.
区别在于this
是指向调用这个方法的对象,而super
指向调用这个方法的父对象.
下面写一个栗子: (注意注释位置)
class Car{
public int tires; //轮胎
public Car(int tires){
this.tires=tires; //将形参tires赋值给当前对象的tires成员
}
public void start(){
System.out.println("启动~");
}
}
class Benz extends Car{
static String brand="Benz";
private String color;
public Benz(int tires,String color){
super(tires); //子类调用父类构造函数,必须放在第一行
this.color=color;
}
public void setColor(String color){
this.color=color; //将形参color赋值给当前对象的color成员
}
public void run(){
super.start(); //子类调用父类方法,行车前先启动
System.out.println("Run~~~~");
}
}
class CarDemo{
public static void main(String[] args){
Benz benz = new Benz(4,"red");
benz.run();
}
}
结果:
启动~
Run~~~~
this
与super
都可以用于调用当前类/父类方法,也可以用于调用构造方法,不过要放在方法的第一行