关于接口的实例化 ,尤其是接口作为方法参数传递的时候的问题

2024-12-16 21:41:03
推荐回答(2个)
回答1:

接口可以new,其实new接口就相当于new一个实现这个接口的匿名内部类,比如:
Runnable runn = new Runnable(){
public void run() {

}
};
这相当于写一个实现Runnable的类,这个类没有名字,当然,要new 这个匿名内部类就必须实现接口的抽象方法,同理,这个也可以用于new 抽象方法。

回答2:

接口作为一个抽象类,是不能直接new出实例的,但可以声明变量。
比如有一个接口student, 有一个类Person, person类实现了student 接口。
那可以这样:Student stu = new Person();
stu.方法名(); //实际调用的是Person 中定义的方法。其中有多态的存在。。。。。