---------------------- android培训、java培训、期待与您交流! ----------------------
多态:可以理解为事物存在的多种体现形态。
1,多态的体现:
父类的引用指向了自己的子类对象。
父类的引用也可以接受自己的子类对象。
2,多态的前提
必须是类与类之间有关系,要莫继承或是实现。
3,多态的好处:
多态的出现大大提高了程序的扩展性。
4,多态的弊端:
提高了扩展性,但只能使用父类的引用访问父类中的成员。
子类的方法必须子类自己来调用。
在多态中成员函数的特点:
1,在编译时,参阅引用型变量所属的类中是否有调用的方法。
如果有,编译通过,没有编译失败。
2,在运行时期,参阅对象所属的类中是否有调用方法。
简而言之,成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员函数变量的特点:
无论编译和运行都参考左边(引用性变量所属的类)。
在多态中,静态成员函数的特点:
无论编译和运行,都参考左边。
代码示例:
abstract class Animal
{
abstract public 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 ToolDemo
{
public static void doSome(Animal An)
{
An.eat();
}
}
class DuoTaiDemo
{
public static void main(String[] args)
{
Animal a = new Cat();
Cat c =(Cat)a;
Animal(new Cat());
public static void function(Animal a)
{
a.eat();
if(a instanceof Cat)
{
Cat c = (Cat)a;
c.catchMouse();
}
else if(a instance Dog)
{
Dog d = (Dog)a;
d.kanJia();
}
}
}
}
---------------------- android培训、java培训、期待与您交流! ---------------------