Java多态

public class Dextend {
    public static void main(String[] args) throws Exception{
        //多态:子类重写父类方法
        //父类变量 = new 子类对象();
        Animal d1 = new Dog();
        Animal d2 = new Dog();
        Animal d3 = new Dog();
        System.out.println("多态访问变量:编译  运行 看左边 age:" + d1.age);
        System.out.println("多态访问方法:编译左边 运行右边 eat():");
        d2.eat();
        d3.sleep();
    }   
}
class Animal{
    public int age = 20;
    public void eat(){
        System.out.println("Animal eat");
    }
    public void sleep(){
        System.out.println("Animal sleep");
    }
}
class Dog extends Animal{
    public int age = 18;
    @Override
    public void eat(){
        System.out.println("Dog eat");
    }
}
 
  1. 多态情况下,子类和父类存在同名的成员变量时,访问的时父类的成员变量
  2. 多态情况下,子父类存在同名的非静态成员方法时,访问的是子类中重写的方法
  3. 多态情况下,子父类存在同名的静态成员变量成员方法时,访问的是父类的成员函数
  4. 多态情况下,不能访问子类独有的方法
posted @ 2023-03-14 14:52  kang09  阅读(8)  评论(0编辑  收藏  举报