对于Java的多态概念的理解
在学习Java的过程中,我们无论如何也绕不过多态这个东西。它到底是个什么东西呢?
其实,它就是指调用相同名字的方法,但是得到的结果是不同的。
第一: 对象是方法
多态的作用范围是方法,不是类不是对象,也不是对象里面的属性
第二: 多态产生的条件
1、有继承---在子类中有方法重写---在方法的调用中,有指向子类的父类的引用
2、有方法的重载,就是相同方法名,但参数不同(个数,类型,顺序)
第三:为什么需要多态?
因为真实世界中的情况是纷繁复杂的,为了应对生活中的种种情况,我们就
需要程序能够分别应对各种情况。即增加了程序的灵活性,来满足客户需求。
第四:Java运行时的多态性
运行时多态性或动态方法分派是一个过程,它对重写方法的调用在运行时体现而不是编译时。
在此过程中,通过超类的引用变量调用重写的方法。 要调用的方法基于引用的对象。
了解运行时多态性之前,让我们先来向上转换。
向上转换
当父类的引用变量引用子类的对象时,称为向上转换。 例如:
class A{} class B extends A{} A a=new B(); //向上转换...
Java运行时多态性示例1
在这个例子中,我们创建两个类:Bike和Splendar。 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(); } }

