黑马程序员--多态

---------------------- <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>

                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值