多态的两种实现方式
1 使用父类作为方法形参
2 使用父类作为方法返回值
(注: 当作为参数的父类是普通类或者抽象类时,构成继承多态;当作为参数的父类是一个接口时,构成接口多态)
1、使用父类方法作为形参( 形式参数的类型: ①基本类型 ②引用类型 )
普通类形参: 当一个形参希望我们传入的是一个普通类时,我们实际上传入的是该类的对象/匿名对象
抽象类形参: 当一个形参希望我们传入的是一个抽象类时,我们实际上传入的是该类的子类对象或子类匿名对象
接 口 形 参 : 当一个形参希望我们传入的是一个接口时,我们实际上传入的是该类的实现类对象或实现类匿名对象
注 意 : 当一个方法的形参是引用类型的时候,需做非空判断,以免出现类型转换异常
2、 使用父类方法作为返回值( 返回值的类型: ①基本类型 ②引用类型 )
普通类: 当一个方法的返回值是一个普通的类时,实际上返回的是该类的对象,我们可以使用该类的对象接收
抽象类: 当一个方法的返回值是一个抽象类时,实际上返回的是该抽象类的子类对象,我们可以使用该抽象类接收
接 口: 当一个方法的返回值是一个接口时,实际上返回的是该接口的实现类对象,我们可以使用接口接收
(注:当方法的返回值类型是引用类型的时候,可以使用链式调用)
3、 代码演示
public class Polymorphism {
public static void main(String[] args) {</