请问JAVA接口能实例化吗如果能请举例说明下好吗

Python020

请问JAVA接口能实例化吗如果能请举例说明下好吗,第1张

如果你看见过接口实例化的例子,那只是内部匿名类 还是要覆写接口中的方法

比较常见的例子 是Swing里的

EventQueue.invokeLater(new Runnable(){

public void run(){

...............

}

})

还有一些 new ActionListener()之类的内部匿名类,这些匿名类也只是实现了这些接口,并且必须覆写接口的中的方法。

总而言之 ,接口是不能实例化的,因为接口中只有方法名称,没有方法体,所以没办法实例化

对于一些实现了接口的内部匿名类,虽然表面形式是接口被new 出来了,但是不要被表象迷惑了,多熟悉一下这种写法,就自然知道其本质只是一个 实现了某种接口的类

你好好看看接口是什么,接口定义出来就是为了让类去实现他的方法,其他类调用接口。

意义在于

假如定义一个

animal

接口

都有个方法

run

,不同的动物去实现这个接口所出来的结果是不同的,鸡实现这个方法

是两条腿跑,狗实现这个则是四条腿跑。

接口可以理解为定义一个规范,所有的动物只要实现这个接口都必须要有run方法。

引用zhihu上的

说的比较通俗:

接口就是个招牌。

比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你就知道今天中饭有着落了。

KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿(实现接口)。

那么为神马我们要去定义一个接口涅,这个店可以直接卖炸鸡腿啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不能直接简单粗暴的冲进去叫服务员给两个炸鸡腿了。

要么,我们就要进去问,你这里卖不卖炸鸡腿啊,卖不卖汉堡啊,卖不卖圣代啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。

要么,我们就要记住,中山路108号卖炸鸡,黄山路45号卖炸鸡(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖炸鸡腿,我们也不可能知道(不利于扩展)。