天天看点

java 向上转型向下转型

向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。

向下转型:父类引用的对象转换为子类类型称为向下转型。

先看两个类:

向上转型示例: father father=new son();//定义了一个father的变量,实际上却赋值了一个son类型

2.1 向上转型的时候,会遗失子类独有的方法,根据以上两个类,son类转型成为father类的时候,son类的“out2”方法会遗失。也就说以下写法会报错:

2.2 向上转型的对象可以调用父类拥有的方法,具体执行的是子类原本的代码块

顾名思义,向下转型就是:father -> son

但是,有条件。

以上代码就是不被允许的,因为:只有本质是子类的类型才能被向下转型

以上代码中,father本质是new father()。

只有被向上转型过的子类,才能执行向下转型

输出:

java 向上转型向下转型