多态的深入理解

 

对于Java的多态概念的理解

    在学习Java的过程中,我们无论如何也绕不过多态这个东西。它到底是个什么东西呢?

  其实,它就是指调用相同名字的方法,但是得到的结果是不同的。

第一: 对象是方法

  多态的作用范围是方法,不是类不是对象,也不是对象里面的属性

第二: 多态产生的条件

  1、有继承---在子类中有方法重写---在方法的调用中,有指向子类的父类的引用

  2、有方法的重载,就是相同方法名,但参数不同(个数,类型,顺序)

第三:为什么需要多态?

  因为真实世界中的情况是纷繁复杂的,为了应对生活中的种种情况,我们就

需要程序能够分别应对各种情况。即增加了程序的灵活性,来满足客户需求。

第四:Java运行时的多态性

  运行时多态性或动态方法分派是一个过程,它对重写方法的调用在运行时体现而不是编译时。

  在此过程中,通过超类的引用变量调用重写的方法。 要调用的方法基于引用的对象。

  了解运行时多态性之前,让我们先来向上转换。

  向上转换

  当父类的引用变量引用子类的对象时,称为向上转换。 例如:

复制代码
class A{}   class B extends A{}   A a=new B();  //向上转换...
复制代码

Java运行时多态性示例1

在这个例子中,我们创建两个类:BikeSplendar。 Splendar类扩展Bike类并覆盖其run()方法。通过父类(Bike)的引用变量调用run方法。 因为它引用子类对象,并且子类方法覆盖父类方法,子类方法在运行时被调用。

因为方法调用是由JVM不是编译器决定的,所以它被称为运行时多态性。
复制代码
class Bike {     void run() {         System.out.println("running");     } }  class Splender extends Bike {     void run() {         System.out.println("running safely with 60km");     }      public static void main(String args[]) {         Bike b = new Splender();// upcasting - 向上转换         b.run();     } }
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信