有这样的界面:
public interface Person {
public String getName();
}
然后有一个类Student
实现Person
:
public class Student implements Person {
private int id;
private String name;
public setId(int id) {
this.id = id;
}
public getId() {
return id;
}
public setName(String name) {
this.name = name;
}
public getName() {
return name;
}
}
Person
的实例在运行时会是什么样子?我如何实例化?
答案 0 :(得分:8)
您无法实例化界面。
您可以做的是实例化界面的实施 - 在您的情况下,Student
。
Person s = new Student();
在这种情况下,s
将实现Person,您可以使用以下方式进行检查:
boolean isPerson = (s instanceof Person);
将评估为true
答案 1 :(得分:1)
您无法实例化Person is it interface
你只能像
那样实例化学生 Person p1= new Student();
or
Student S1 = new Student();
答案 2 :(得分:1)
你永远不能在java中实例化interface
。但是,您可以通过接口类型引用实现接口的对象。例如,
Person test = new Student();
答案 3 :(得分:1)
正如其他答案中所述,Person
是一个接口,因此无法实例化。因此,在实现类的构造函数中包含参数是有用的,因为后者的setter不能直接从Person
引用访问
public Student(int id, String name) {
this.id = id;
this.name = name;
}
以便初始化
Person s = new Student(1, "Jon Smith");