小编Ris*_*ard的帖子

Java编译器和接口转换

我正在寻找使用Java进行转换,特别是使用接口进行转换.假设我有一个I定义方法跳转的接口,即:

interface I{
    public void jump();
}
Run Code Online (Sandbox Code Playgroud)

另外假设我有3个其他类A,BC.A实施I.B才不是.但是,C扩展B和实现I.

class A implements I {
   public void jump(){
      System.out.print("A is jumping");
   }
}
class B { } 
class C extends B implements I {
    public void jump(){
        System.out.print("C is jumping");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试将类型的对象分配A给a I,则没有问题,我甚至不需要演员.即:

I i = new A();
Run Code Online (Sandbox Code Playgroud)

没关系,不需要施放.

大概这是因为编译器知道A实现了I.此外,如果我尝试这样做:

A mya = new A();
I i = …
Run Code Online (Sandbox Code Playgroud)

java casting interface

2
推荐指数
1
解决办法
117
查看次数

标签 统计

casting ×1

interface ×1

java ×1