这部分可以说是java的灵魂。它的实现原理其实不是很复杂:动态绑定。但在java中有一套强大多态运用的体系,其中涵盖了引用类型、参数类型传递、协变返回类型和基本数据类型等
引用类型的自动转换:
1、子类实例父类引用
Father p = new Son();
2、使用对象类型的接口作为引用
3、使用对象类型父类的接口作为引用
第三点的例子:
public class ClassCast implements Comparable{
public void show(){}
@Override
public int compareTo(String o) {
System.out.println("比较器比较");
return 0;
}
public static void main(String[] args) {
Comparablea = new Son();
a.compareTo("11");
}
}
class Son extends ClassCast {
}
强制类型转换:
1、子类引用、父类实例
Son s = (Son) new Father();
参数的传递:
1、父类引用参数可直接接收子类实例。
2、接口引用参数可以直接接收实现了这个接口的实例
从这两点看,似乎和自动类型转换是一致的。
协变返回类型:
1、返回可以是设定类型的子类实例
数据类型的自动转换:
有空再写