Java Upcasting 上溯造型 Downcasting -Java 学习笔记 (17)

来源:互联网 发布:sql server 2005使用 编辑:程序博客网 时间:2024/09/21 09:20

Upcasting,上溯造型,有的书译作“向上转型”,是实现Java多态(Polymorphism) 的基石。

上溯造型,乍听之下觉得挺高深的,但是道理说明白了并不复杂。Casting只的是对象之间类型的转换。将一个对象的引用(Object Reference)看作其父类对象的引用(Reference to base type)叫做Upcasting(上溯造型或向上转型)。反之,将对象的引用看作其子类的引用叫Downcasting。
Upcating系统会自动替你去做,而Downcasting则需要强制类型转换。

例有如下类的定义:
class FatherClass {
 public void fatherMethod()
 {}
}
class ChildClass Extends FatherClass {
  public void childMethod()
  {}
}
语句
FatherClass fc = new ChildClass();
就是典型的Upcating。new语句构造了一个ChildClass的对象,经过Upcasting转型为FatherClass并把引用指针赋值给引用变量fc
应当注意的是,经过转型后,引用变量fc只能看到父类FatherClass的成员,而不能调用子类的成员
如果需要调用,应进行Donwcasting
(ChildClass)fc.childMethod();

原创粉丝点击