我在学习书中发现了以下问题,有点困惑:
给定以下代码,如果用于替换哪个选项,/* 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)
选项包括:
Roamable var = new Phone();Roamable var = (Roamable)Phone();Roamable var = (Roamable)new Phone();Roamable和类Phone是不相关的,所以类型的引用变量Roamable不能引用类的对象Phone.我认为正确的选项是4,但它说它是3.
但是,Phone没有实现Roamable界面,所以你不能施展,可以吗?
我有一个关于接口和类实现接口的问题.
这是我的代码:
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)
感谢帮助.