相同的类投射?

rik*_*tro 5 java casting class

假设我有两个类A和B.两个都是相同的(相同的属性,方法等),但它们的名称不同.

在Java中,有一种安全的方法可以将B对象转换为A对象吗?

Bol*_*ock 9

不,如果它们属于不同的类层次结构,则不能将其中一个转换为另一个.它们并不完全相同,即使它们恰好具有相同的属性和方法.此外,如果它们属于同一个类层次结构,其中一个不是另一个类的超类,则也不能在同一个类层次结构中进行转换.层次结构中只有向上转换和向下转换.

但是,您可以将任一类的对象传递给某个方法

  • 它们实现相同的接口,或扩展相同的超类,和
  • 该方法接受一个接口或超类类型的参数

(这是多态性的基本前提.)