多态性简介
多态是面向对象中的第三大主要特征,多态性是继承性的基础之上扩展出来的概念,也就是说可以实现父子类相互之间的转换。
多态的基本概念
在Java之中对多态有两种实现的模式:
- 方法的多态性
- 方法的重载,同一个方法名称可以根据传入的参数的类型或个数不同实现不同功能的执行
- 方法的覆写:同一个方法由不同的类实现
//方法的重载
class JavaDemo{
public String getInfo(){
return "我是被第一个方法";
}
public String getInfo(String str){
return "我是上个方法的重载,我们参数不同";
}
}
//方法的覆写
class Father(){
public String getName(){
return "我是父类";
}
}
class Son extends Father{ //继承Father类
public String getName(){//覆写方法(名字参数等都要一致)
return "我是子类";
}
}
- 对象的多态性:父子实例之间的转化处理,它有两种模式:
- 对象向上转型:父类 父类实例 = 子类实例;自动完成转换。
- 对象向下转型:子类 子类实例 = (子类)父类实例;强制完成转换。
从实际的转型处理来讲,大部分情况下考虑最多的一定是对象的向上转型(90%),对于对象的向下转型往往都在使用子类特殊(子类可以对父类进行功能扩充)的时候要采用向下转型(3%),还有一些时候是不会考虑转型的(String7%)。