目录
this
this是对本类使用的,它使用的对象取决于谁在执行。
this的作用
this.属性名
调用属性,区分局部变量与属性名重名,this.属性名
public Student(String name,char sex){
this.name = name;
this.sex = sex;
}
注意:Student是我自己创建的一个类,类里面有name和sex两个属性,这个,相当于把局部变量的值赋值给了全局变量。
提示:如果局部变量名与属性名不一样,属性可以使用this.属性名,也可以省略,如下:
public Student(String username,char usersex){
name = username;
sex = usersex;
}
this.方法名()
在本类的其他方法中,调用本类方法,一般可以省略this,如下:
this([实参])
调用本类构造方法
注意:必须构造方法第一行!!!
在方法中,可能有相同属性,这时候就可以用this([实参]),减少代码量,如下:
super
super关键字用于调用父类。
super的作用
super.属性
调用父类的属性(如果父类的属性是private修饰, super.属性无法访问)
super.方法名()
调用父类的方法
这里的Dog方法,有一个Pet父类,父类中有个方法setName(name为private时,用get和set调用)
public Dog(){
super.setName("哈哈哈哈哈哈");
}
在方法重写中:
如果子类没有重写父类这个方法, super. this. 是一样
如果子类重写父类这个方法, super.这个方法() 调用父类, this.这个方法() 调用子类方法 是不一样的
super([参数])
调用父类构造方法, 只是调用父类构造方法,没有创建父类对象,
super() 只能在子构造方法的第一行
如果我们没有在子类构造方法手动编写super()代码或者this(), jvm虚拟机在子类构造方法隐式添加super();如果手动写, 不会给你添加super();
在子类构造方法,不能同时编写this(),super(),只能二选一