package com.javaSE08.duotai;
//多态
//定义:不同的类对象接收同一个消息产生完全不同的响应
//实现的条件:
//1.继承
//2.重写
//3.父类引用,子类实例化
//4.通过父类的引用调用被重写过的方法
//动态绑定机制--(另有:早期绑定,在编译时就进行绑定)
//1.编译时检查声明的类中是否有该方法
//2.运行时发现引用实际指向的对象的类型,到实际类型中找方法,如果找不到,就去父类中找方法
public class Animal {
public void bark(){
System.out.println("动物叫。。。。。");
}
public final void fun(){
}
}
package com.javaSE08.duotai;
public class Cat extends Animal {
//重写叫
/*public void bark(){
System.out.println("喵。。喵。。喵。");
}*/
//不能重写fianl修饰的方法
/*public final void fun(){
}*/
}
package com.javaSE08.duotai;
public class Dog extends Animal {
//重写bark()
public void bark(){
System.out.println("汪。。汪。。汪");
}
//不能重写final修身的方法
/*public final void fun(){
}*/
}
package com.javaSE08.duotai;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//父类引用,子类实例化
Animal dog = new Dog(); //通过父类来创建子类对象
Animal cat = new Cat();
dog.bark(); //通过父类引用调用被重写的方法
cat.bark();
}
}