class Cat extends Animal{
@Override
void eat() {
System.out.println("cat eat!");
}
void catch_mouse(){
System.out.println("catch mouse!");
}
}
class Dog extends Animal{
@Override
void eat() {
System.out.println("Dog eat!");
}
}
abstract class Animal{
abstract void eat();
}
调用代码:
Animal a = new Cat();
a.eat();
//自动类型提升,猫对象提升到了动物类型,但是猫的特定功能无法访问
//作用就是限制了对特有功能的访问
//专业来说就是 向上转型
//如果我还是想调用猫的特有功能怎么办?这时我们需要向下转型
Cat c = (Cat)a;//向下转型
c.catch_mouse();
控制台输出:
cat eat!
catch mouse!
多态即:父类对象的引用可以指向多个子类对象,方便扩展代码
弊端:限制了子类对调用自己的特有的方法