/*
多态:可以理解为事物存在的多种体现形态
1,多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象。
2,多态的前提
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提,存在覆盖。
3,多态的好处
多态的出现大大提高程序的扩展性。
4.多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
4,多态的应用
*/
//建立一个动物类
abstract class Animal {
abstract void eat(); //定义一个吃的函数
}
//定义一个猫类继承动物类
class Cat extends Animal {
public void eat() { //重写父类方法
System.out.println("吃鱼");
}
public void catchMouse() { //猫的特有功能
System.out.println("抓老鼠");
}
}
//定义一个狗类继承动物类
class Dog extends Animal {
public void eat() {
System.out.println("吃骨头");
}
public void kanJia() { //狗的特有功能
System.out.println("看家");
}
}
//定义一个猪类继承动物类
class Pig extends Animal {
public void eat() {
System.out.println("吃饲料");
}
public void gongDi() { //猪的特有功能
System.out.println("拱地");
}
}
//运行类
class DuoTaiDemo {
public static void main(String[] args) {
Cat c = new Cat();
Dog d = new Dog();
Pig p = new Pig();
funEat(c); //父类引用指向子类对象
funEat(d);
funEat(p);
}
//写一个函数可以输出子类调用父类的函数内容
public static void funEat(Animal a) { //Animal a = new Cat(Dog, Pig)();
a.eat();
}
} |