相关疑难解决方法(0)

Java将对象转换为未实现的接口

我在学习书中发现了以下问题,有点困惑:

给定以下代码,如果用于替换哪个选项,/* INSERT CODE HERE */将启用类型的引用变量Roamable来引用Phone类的对象 ?(选择1个选项.)

interface Roamable{}
class Phone {}
class Tablet extends Phone implements Roamable {
    //INSERT CODE HERE
}
Run Code Online (Sandbox Code Playgroud)

选项包括:

  1. Roamable var = new Phone();
  2. Roamable var = (Roamable)Phone();
  3. Roamable var = (Roamable)new Phone();
  4. 因为接口Roamable和类Phone是不相关的,所以类型的引用变量Roamable不能引用类的对象Phone.

我认为正确的选项是4,但它说它是3.

但是,Phone没有实现Roamable界面,所以你不能施展,可以吗?

java casting interface

8
推荐指数
2
解决办法
3240
查看次数

Java转换为类的接口

我有一个关于接口和类实现接口的问题.

这是我的代码:

interface iMyInterface {
    public iMethod1();
}

public class cMyClass implements iMyInterface {
    public iMethod1() {
        // some code
    }
    protected iMethod2() {
        // some code
    }
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个如下的实例iMyInterface:

iMyInterface i = new cMyClass();
i.iMethod1();
Run Code Online (Sandbox Code Playgroud)

没关系,但我如何iMethod2()从我的界面实例调用?这是否有效且安全:

((cMyClass)i).iMethod2();
Run Code Online (Sandbox Code Playgroud)

感谢帮助.

java casting interface class

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

标签 统计

casting ×2

interface ×2

java ×2

class ×1