‘壹’ java 中实现多态的机制是什么
多态就是指一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
(1)java接口的多态扩展阅读:
特点:
指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。
若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。
‘贰’ 简述java类中多态性的体现形式
多态可分为:
1.编译多态:主要是体现在重载,系统在编译时就能确定调用重载函数的哪个版本。
2.运行多态:主要体现在OO设计的继承性上,子类的对象也是父类的对象,即上溯造型,所以子类对象可以作为父类对象使用,父类的对象变量可以指向子类对象。因此通过一个父类发出的方法调用可能执行的是方法在父类中的实现,也可能是某个子类中的实现,它是由运行时刻具体的对象类型决定的。
‘叁’ Java中的多态到底有什么实际开发作用
JAVA语言特征之一多态机制,故名思议就是多种变化形态。
在实际的开发当中一般都应用在两个方面,其一:神段方法的多态---重载(overload)和重写(override),其二:对象的多态,对象的向上转型,对象的向下转型。
方法的重载:发生在同一个类当中,方法名称相同,参数列表不同。
经常看到的就是某一个类的构造方法,例如:String类
当然也可以是其他普通方法。
方法的重写:发生在有继承关系的类中(说白了就是子类中),方法名称和参数列表一模一样。
例如: Object类当中的equals()方法、toString()方法等。
对象的多态:
向上转型: 父类类型 父类对象名称 = new 子类类型();
向下转型:子类类型 子类对象名称 = (子类类型)父类对象名称;
注意: 先由向上转型再有向下转型,如果直接写向下转型则会出现ClassCastException(类型转换异常)
应用:1.为接口/抽象类实例化对象
例如: List<String> list = new ArrayList<String>();
2.在方法当中的参数----如果是父类类型,则可以传入子类对象
谨腔 例如: public void show(Object obj) {}
6.当然,在高级框架中也是存在多游晌誉态的内容,但是只要知道怎么用即可。