Super和this
Super关键字可以调用父类的变量和方法(私有变量不可直接调用)
This关键字可以调用当前调用者(当前类)的变量和方法
利用super调用父类的属性和方法
- 使用super调用父类的属性
//在父类中定义了money为1000000 子类中也定义了money为7777 后续在主程序中创建对象定义了money为888
//Student类
public void test(int money){
System.out.println(money);//后面传递的money
System.out.println(this.money);//当前类的money
System.out.println(super.money);//父类的money
//在主程序中运行
//利用super调用父类的属性
s1.test(888);
//输出为/888
//7777
//100000
- 使用super调用父类的方法
//在父类中定义一个输出Person的方法 子类中定义输出Student的方法 然后在测试类中运行
//Student类
public void tt(){
print();
this.print();
super.print();
}
//测试类
//利用super调用父类的方法
s1.tt();
//结果为
//Student
//Student
//person
当运行子类构造器时 会默认运行父类的构造器 其次才会运行子类的构造器
默认调用父类的代码为:super();
调用当前类的构造器:this();
super注意点
- super调用父类的构造方法,必须在构造方法中的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
this
4. 与super代表的对象不同
- this:当前类中的…
- super:父类中的…
- 使用条件
- this 没有继承也可以使用
- super 只能在继承后的子类中使用
- 构造方法
- this();本类的构造
- super();父类的构造
父类Person的代码
public class Person {
// 父类 人类
int money=100000;
public void take(){
System.out.println("说话");
}
public void print(){
System.out.println("person");
}
}