Java中的继承
格式
使用 extends 关键字来实现继承
定义父类
public class fu {
///
}
定义子类
public class zi extends fu {
///
}
成员变量访问规则
在父子类的继承关系当中,如果子类和父类的某个成员变量重名,则创建子类对象时,有两种访问方式
- 直接访问
- 等号左边是谁就优先用谁的成员变量,没有就向上找。
- 间接访问
- 间接通过成员方法访问变量,该方法属于谁就优先用谁的,没有就向上找。
当局部变量、本类成员变量、父类成员变量重名时
局部变量:直接写成员变量名
本类成员变量:this.成员变量名
父类成员变量:super.成员变量名
父类
package demoExtends;
public class employee {
int num = 10;
public void method(){
System.out.println("方法执行!");
}
}
子类
package demoExtends;
public class Teacher extends employee{
int num = 20;
public void ziMethod(){
int num = 30;
System.out.println(num); //30
System.out.println(this.num); //20
System.out.println(super.num); //10
}
}
主程序
package demoExtends;
public class demoExtends {
public static void main(String[] args) {
Teacher t1 = new Teacher();
// Assistant a1 = new Assistant();
// t1.method();
// a1.method();
t1.ziMethod();
}
}
输出
30
20
10
成员方法访问规则
在父子类的继承关系中,创建子类对象,访问重名的成员方法的规则:
创建的对象是谁,就优先用谁,如果没有则向上找。
直接通过对象名称访问成员变量,等号左边是谁就优先用谁,没有则向上找。