1、this关键字
-
this()
代表本类中的构造方法中调用另一个构造方法
必须放在构造方法的第一句,不能出现两个
为什么要调用其他的构造方法
为了复用其他的构造方法
-
this.
表示当前对象
可以在本类的方法,构造方法 中使用
-
this关键字的三种用法
- 在本类的成员方法中访问本类的成员变量
- 在本来的成员方法中,访问本来的另一个成员方法
- 在本类的构造方法中,访问另一个构造方法
2、super关键字
-
super()
代表本类中父类的构造方法,也只能写在第一句
父类的构造方法,会在子类中默认调用父类的构造方法
表达当前类的父对象
在本来中的构造方法和实例方法中使用
-
super.
表示当前对象的父对象
可以在子类的方法,子类构造方法中使用
-
super关键字的用法
- 在子类的成员方法中,访问父类的成员变量
- 在子类的成员方法中访问父类的成员方法
- 在子类的构造方法中访问父类的构造方法
- super关键字访问父类的内容
package jicheng;
public class Phone {
// public Phone(){
// System.out.println("父类的无参构造方法");
// }
int num = 10;
public void methodFu(){
System.out.println("父类的成员方法");
}
public Phone(int num){
System.out.println("父类的有参构造方法");
}
}
package jicheng;
public class Newphone extends Phone {
int num = 20;
//通过子类的构造方法来用super获取父类的构造方法
public Newphone(int num) {
super(num);
}
//通过子类的成员方法来用super获取父类的成员变量num;
public void methodNum(){
System.out.println(super.num);
}
//通过子类的成员方法,来用super获取父类的成员方法
public void methodFun(){
super.methodFu();
}
}
3、this与Super的区别?
相同点:
- super{},和 this()都必须放在构造函数的第一句,super()和this()不能出现在同一个构造函数中
- this 和 super 都是操作对象00
不同点:
- super()是对父类构造方法额调用,this()是对本类重载的构造方法调用,
- super()是在 不同类中使用,this()是在同一个类中使用,
- this 调用本类的成员变量和成员方法,如果本类中没有就从父类中继续查找,super是访问的是父类的变量和方法,
- this 表示当前对象,super表示父类对象