接口可以new,其实new接口就相当于new一个实现这个接口的匿名内部类,比如:
Runnable runn = new Runnable(){
public void run() {
}
};
这相当于写一个实现Runnable的类,这个类没有名字,当然,要new 这个匿名内部类就必须实现接口的抽象方法,同理,这个也可以用于new 抽象方法。
接口作为一个抽象类,是不能直接new出实例的,但可以声明变量。
比如有一个接口student, 有一个类Person, person类实现了student 接口。
那可以这样:Student stu = new Person();
stu.方法名(); //实际调用的是Person 中定义的方法。其中有多态的存在。。。。。