我正在阅读一段代码,这让我很困惑。
interface Interviewer{
void conductInterview();
}
class Employees {
String name;
}
class HRexecutive extends Employees implements Interviewer{
String[] Specialization;
public void conductInterview(){
System.out.println("HR conduct interview");
}
}
public class paractise1 {
public static void main(String[] args) {
Interviewer interviewers [] = new Interviewer[1];
interviewers [0] = new HRexecutive();
}
}
上面的代码编译成功,但我很困惑如何创建一个接口“Interviewer”数组,如果在Java中将Array视为对象。
答案 0 :(得分:3)
接口只不过是foreach ($keys as $key) {
foreach ($array[$key] as $key2 => $value) {
if(($key==0 && ($key2 == 3 || $key2 == 4)) || ($key == 1) )
$array[$key][$key2] = //your value;
}
}
具有某些方法/属性的断言。此外,数组不存储对象本身,而是存储对象的引用。它与存储Object
:Interviewer
实例的HRexecutive
类型变量相同。引用Interviewer i = new HRexecutive();
驻留在堆栈内存中(至少,如果在方法中定义了i
)并且保存对通过i
创建的实际实例的引用,该实例位于堆内存中
正如EJP's answer中所述:如果数组元素的泛型类型为new HRexecutive()
,则会使用null
对其进行初始化。因此,在创建instanceof Object
数组时,不会调用接口的构造函数。
答案 1 :(得分:2)
数组是一个对象。它包含对接口类型的对象的引用。这些引用最初为null。创建数组时,没有任何地方创建接口的实例。