JavaSE-11.1.1【多态、多态中的成员访问特点】

package day2.yubaby01.p1;

/*
1 多态

1.1多态的概述
    什么是多态
        同一个对象,在不同时刻表现出来的不同形态
    多态的前提
        要有继承或实现关系
        要有方法的重写
        要有父类引用指向子类对象

1.2多态中的成员访问特点
    成员变量
        编译看父类,运行看父类
    成员方法
        编译看父类,运行看子类
    成员变量和成员方法访问不一致原因:成员方法有重写,而成员变量没有
 */

public class AnimalDemo {
    public static void main(String[] args) {
        Animal a = new Cat(); //3父类引用指向子类对象  -->  多态

        System.out.println(a.age); //访问到父类成员变量 10
//        System.out.println(a.weight); //error

        a.eat(); //猫吃草
//        a.weight(); //error
    }
}

  

package day2.yubaby01.p1;

public class Animal {

    public int age = 10;

    public void eat(){
        System.out.println("动物进食");
    }
}

  

package day2.yubaby01.p1;

public class Cat extends Animal{ //1继承

    public int age = 20;
    public int weight = 5;

    @Override
    public void eat(){ //2方法重写
        System.out.println("猫吃草");
    }

    public void playGame(){
        System.out.println("猫捉迷藏");
    }
}

  

posted @ 2021-05-28 15:13  yub4by  阅读(69)  评论(0编辑  收藏  举报