【第十六章】多态性
一.多态性简介
多态性是面向对象中的第三个主要特征,多态性是在继承性的基础之上扩展出来的概念
可以实现父子类的相互转换处理
1.多态性的基本概念:
在JAVA之中,多态性有俩种实现模式:
(1)方法多态性:
方法的重载:同一个方法的名称可以根据传入的参数类型或个数的不同,实现不同功能的执行
class chongzai{ public void print(){ System.out.println("www.mldn.con"); } public void print(String str){ System.out.println(str); } }
方法的覆写:同一个方法可能根据子类使用的不同来实现不同的功能。
class Message{ public void print(){ System.out.println("www.mldn.con"); } } class DateMessage extends Message{ public void print(){ System.out.println("Oracle数据库连接信息。。"); } } class NetworkMessage extends Message{ public void print(){ System.out.println("网络连接数据信息。。"); } }
(2)对象多态性
父子实例之间的转换处理,他有俩种模式:
对象向上转型:父类 父类实例 = 子类实例;这种模式是自动完成转换
对象向下转型:子类 子类实例= (子类)父类实例;强制完成转换
从实际的转型处理来讲,大部分情况下考虑最多的一定是对象的向上转型(90%),对于对象的向下转型往往都在使用子类特殊功能的时候(3%),还有一些时候是不会考虑转型的(7%)
上转型对象会失去原对象的一些属性和方法。(向上转型对象相当于子类对象的一个简化版)。
比如动物是父类,老虎是子类,那么当我们说老虎是动物的时候,老虎就失去了老虎本来拥有的一些特征,向上更宽的范围定义。