1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态。
1)方法的重载和重写
2)子类对象的多态性
2.子类对象的多态性使用的前提: 1 - 要有类的继承 2 - 要有子类对父类方法的重写
3.程序运行分为编译状态和运行状态。
对于多态性来说,编译时,“看左边”。将此引用变量理解为父类的类型
运行时.“看右边”,关注于真正对象的实体:子类的对象。那么执行的方法就是子类重写的。
package com.com.ty.java;
public class TestAnimal {
public static void main(String[] args) {
TestAnimal t = new TestAnimal();
t.func(new Animal());
t.func(new Dog());
t.func(new Cat());
}
public void func(Animal a){
a.eat();
a.jump();
if (a instanceof Dog){
Dog aa = (Dog)a;
aa.wang();
}
if (a instanceof Cat){
Cat ca = (Cat)a;
ca.catchMou();
}
}
}
class Animal{
String name;
int age;
public void eat(){
System.out.println("进食");
}
public void jump(){
System.out.println("跳");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("狗进食");
}
public void jump(){
System.out.println("狗跳墙");
}
public void wang(){
System.out.println("狗叫");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫进食");
}
public void jump(){
System.out.println("猫跳墙");
}
public void catchMou(){
System.out.println("猫抓老鼠");
}
}