JAVA单排日记-2019/10/22-2-多态

1、多态的概述

一个对象(不是类),同时拥有多个形态
JAVA单排日记-2019/10/22-2-多态_第1张图片

2、多态的格式与使用

格式:
父类名称 对象名 = new 子类名称();
接口名称 对象名 = new 实现类名称();
使用:
  • 多态中成员变量的使用:编译看左边,运行还看左边
  1. 直接通过对象名访问成员变量:等号左边是谁,优先用谁,没有向上找(Ps:注意,多态左边是父类,父类一般没有上级)
public class Fu1 {
    int num = 20;
}
public class Zi1 extends Fu1 {
    int num = 10;
}
public class Multi {
    public static void main(String[] args) {
        Fu1 one = new Zi1();
        int a = one.num;      编译看左边,运行还看左边,左边是Fu1所以用num=20
        System.out.println(a);
    }
}

在这里插入图片描述

  1. 间接通过成员方法访问成员变量:看该成员方法属于谁,子类如果没有覆盖重写就是父,子类如果覆盖重写就是子。
  • 多态中成员方法的使用:编译看左边,运行看右边
public class Fu2 {
    int num = 20;
    public void methodFu(){
        System.out.println(num);
    }
}

public class Zi1 extends Fu1 {
    int num = 10;
    public void methodZi(){
        System.out.println(num);
    }
}

public class Multi {
    public static void main(String[] args) {
        Fu2 obj = new Zi2();
        obj.methodFu();编译看左边运行看右边,左边Fu2有methodFu(),右边Zi2可以继承Fu2的methodFu(),所以正确
        obj.methodZi(); 错误写法!!,编译看左边运行看右边,左边Fu2没methodZi(),所以会出现编译错误
    }
}

好处

JAVA单排日记-2019/10/22-2-多态_第2张图片

你可能感兴趣的:(Java)