---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
多态:理解为事物存在的多种体现形似。
所谓多态,是指一个程序中相同的名字表示不同的含义的情况。面相对象的程序中多态的情况有多种,简单情况下,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法。
实例一个对象:
猫 m = new 猫();
这是类与对象之间的关系,某一种类型对应这种类型的具体实例。当类与类之间产生关系后,实例可以具备其他的类型。
动物 a = new 猫();
这就是多态。
1. 多态的体现:
父类的引用指向了自己的子类的对象;
父类的应用也可以接受自己的子类对象。
2. 多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3. 多态的好处
多态的出现大大的提高程序的扩展性。
4. 多态的弊端
虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员。
5. 多态的应用
6. 多态的出现在代码中的特点(多态使用的注意事项)
在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果买有,编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边
class Fu
{
voidmethod1()
{
System.out.println("fumethod_1");
}
voidmethod2()
{
System.out.println("fumethod_2");
}
}
class Zi extends Fu
{
voidmethod1()
{
System.out.println("zimethod_1");
}
voidmethod3()
{
System.out.println("zimethod_3");
}
}
class DuoTaiDemo
{
publicstatic void main(String[] args)
{
Fuf = new Zi();
f.method1();
f.method2();
//f.method3();
//编译失败,因为父类中没有method3这个方法
}
}
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>