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("猫捉迷藏");
}
}