interface I{
}
class A implements I{
}
class B extends A {
}
class C extends B{
public static void main(String args[])
{
A a = new A();
B b = new B();
b = (B)(I)a; //Line 1
}
}
我知道这不是一个真正的代码:)
我只需要知道如何在第1行完成转换。
我知道引用变量'a'被强制转换为B类/接口I.
但是我不确定施法的顺序。有人告诉我哪个施法会先被执行。
PS:我搜索了类似的帖子,但大多数都是来自C ++。如果有类似的帖子已经有了Java,请指出它...... .tx答案 0 :(得分:3)
a
首先被投射到I
类型,然后输入B
,因为投射是右关联的。
答案 1 :(得分:0)
你为什么要把它放在首位?这是多级继承,但这里发生的是它们在类I中的所有方法都被类A继承,因为类B继承了类A,类A中的方法被传递到类B.这意味着类A继承的所有方法也将在B班
这意味着B级也是I类的一种类型,因此我认为根本不需要施放