在 Java 中转换对象

2022-08-31 16:46:10

我对在Java中强制转换对象意味着什么感到困惑。

假设你有...

Superclass variable = new Subclass object();
(Superclass variable).method();

这是怎么回事?变量类型是更改了,还是变量中的对象发生了变化?非常困惑。


答案 1

请看一下此示例:

public class A {
  //statements
}

public class B extends A {
  public void foo() { }
}

A a=new B();

//To execute **foo()** method.

((B)a).foo();

答案 2

假设你有一个超类水果和子类香蕉,你有一个方法 addBananaToBasket()

例如,该方法将不接受葡萄,因此您要确保将香蕉添加到篮子中。

所以:

Fruit myFruit = new Banana();
((Banana)myFruit).addBananaToBasket();⇐ 这称为铸造