我们都知道你不能在 Java 中实例化一个接口(至少直接实例化)。
但是有这样的事情:
public class Test{
public interface Link {
void mySamplemethod();
String myString ="HELLO!";
}
public static void main(String []args){
Link b;
}
}
Run Code Online (Sandbox Code Playgroud)
b……究竟是什么,它怎么可能有实际用途?
b是一个Link没有值的类型变量,甚至没有null。为了有实际用途,您必须使用其类实现Link接口的对象引用来初始化它。
如果要Link使用非null值进行初始化,则应创建一个实现此接口的类。这在 Java 中是强制性的。如果你不想在这个类之外创建一个新类,你可以在类内部或方法内部创建一个新类(这将是一个匿名类)。这是一个示例:
public static void main(String []args){
Link b = new Link() {
@Override
public void mySampleMethod() {
System.out.println("hello");
}
};
b.mySampleMethod();
}
Run Code Online (Sandbox Code Playgroud)
这里已经很好地解释了使用接口进行编程而不是直接类的目的:“编程到接口”是什么意思?(无需重新发明轮子)。
| 归档时间: |
|
| 查看次数: |
7534 次 |
| 最近记录: |