Java中的转型分为向上转型和向下转型。
向上转型:直接就可以转。包括:子类转父类,基本数据类型的小型转大型。
向下转型:需要强制转换。而且会丢失精度,以及子类中的方法。
看代码:
/**
* @date 2020/9/9 14:53
* 向上转型和向下转型
*/
public class UpAndDown {
public static void main(String[] args) {
Son2 son2 = new Son2();
son2.getSon();
// 向上转型,无法调用子类中的 getSon 方法
Father2 father2 = son2;
// 对于基本数据类型来说也会直接转
int i = 0;
long l = i;
// 向下转型,需要进行强制转换
Father2 father = new Father2();
Son2 son = (Son2) father;
long l2 = 1;
int i2 = (int) l2;
}
}
class Father2{
}
class Son2 extends Father2{
public void getSon(){
System.out.println("son");
}
}