-
向上转型
-
也称隐式转型、自动转型(小类转型为大类)
-
父类引向子类实例,可以调用子类重写父类的方法以及父类派生的方法(即定义在父类中的方法),无法调用子类独有方法
-
补充:父类中的静态方法无法被子类重写,所以向上转型之后,只能调用父类原有的静态方法。示例代码如下:
(1)父类 Animal 类:
public class Animal { //方法:说话 public static void say() { System.out.println("动物都有说话的能力"); } }
(2)子类 Cat 类:
public class Cat extends Animal{ //方法:说话 public static void say() { System.out.println("猫也有说话的能力"); } }
(3)测试类:
import com.animal.Animal; import com.animal.Cat; public class Test { public static void main(String[] args) { Animal one = new Animal(); //向上转型、隐式转型、自动转型 ----> 父类引用指向子类实例,可以调用子类重写父类的方法以及父类派生的方法,无法调用子类独有方法 Animal two = new Cat(); two.say(); } }
输出结果如下:
动物都有说话的能力
可以看到,这里 two 虽然是 Cat 类的实例,但是因为是转成父类引用,所以只能调用父类原有的静态方法。
-
-
-
向下转型
- 也称强制类型转换
- 子类引用指向父类对象,此时必须进行强转
- 强转后可以调用子类特有的方法。
- 但必须满足转型条件才能进行强转
- 可以借由 instanceof 运算符来判断是否满足类型转换的条件
网友评论