多态
定义:某一类事物的多种存在形态。
例:动物中猫,狗。
猫这个对象对应的类型是猫类型猫x=new猫();
同时猫也是动物中的一种,也可以把猫称为动物。
动物y=new猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
abstract class Animal
{
abstract void eat();
}
class Cat extends Animal
{
public void eat()
{
System.out.printin("吃鱼");
}
public void catch Mouse()
{
System.out.println("抓老鼠");
}
}
class Dog extends Animal
{
public void eat()
{
system, out, printin("吃骨头");
}
public void kanJia()
{
system, out, printin("看家");
}
}
class Pig extends Animal
{
public void eat()
{
System.out.print In("词料]");
}
public void gongDi()
{
system.out.printin("逆");
}
}
class DuoTaiDemo
{
public static void main(String[]args)
{
//Cat c=new Cat();
//c. eat();
//Dog d=new Dog();
//d. eat();
Cat c = new Cat();
Catc1 = new Cat();
function(c1);
function(new Dog());
}
public static void function(Cat c)
{
c.eat();
}
public static void function(Dog d)
{
d.eat();
}
}
1,多态的体现
父类的引用指向了自己的子类对象。
父类的引用也可以接收自己的子类对象。
2,多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3,多态的好处
多态的出现大大的提高程序的扩展性。I
4,多态的弊端:
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
5,多态的应用
6,多态的特点
成员函数:
编译时:要查看引用变量所属的类中是否有所调用的成员。
在运行时:要查看对象所属的类中是否有所调用的成员。
成员变量:
只看引用变量所属的类。