作者:优美rosner_704 | 来源:互联网 | 2023-12-11 12:56
多态中成员变量的使用特点
访问成员变量的两种方式:
1. 直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。
2. 间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找。
public class Fu {
int num = 10;
public void showNum(){
System.out.println(num);
}
}
public class Zi extends Fu{
int num = 20;
@Override
public void showNum() {
System.out.println(num);
}
}
public class Demo01MultiField {
public static void main(String[] args) {
//使用多态的写法,父类引用指向子类对象
Fu obj = new Zi();
System.out.println(obj.num);
System.out.println("==========");
//子类没有覆盖重写,就是父
//子类如果覆盖重写,就是子
obj.showNum();
}
}
多态中成员方法的使用特点
在多态的代码当中,成员方法的访问规则是:
看new的是谁,就优先用谁,没有则向上找。
>多态:编译看左边,运行看右边。
>成员变量:编译看左边,运行还看左边。
>成员方法:编译看左边,运行看右边。
public class Fu {
int num = 10;
public void showNum(){
System.out.println(num);
}
public void method(){
System.out.println("父类方法");
}
public void methodFu(){
System.out.println("父类的特有方法");
}
}
public class Zi extends Fu{
int num = 20;
@Override
public void showNum() {
System.out.println(num);
}
@Override
public void method(){
System.out.println("子类方法");
}
public void methodZi(){
System.out.println("子类的特有方法");
}
}
public class Demo01MultiField {
public static void main(String[] args) {
//多态
Fu obj = new Zi();
//父类都有,优先用子
obj.method();
//子类没有,父类有,向上找到父类
obj.methodFu();
}
}
多态的好处
搜索
复制