对java接口的理解

声明一个接口

interface 接口名 【extends 其他类】{

声明变量
抽象方法

}

声明动物这个接口

interface Animal{
public void eat();
public void travel();

}

声明一个接口的时候不必使用abstract关键字
接口中的方法也不需要abstract关键字
接口中的方法都是公有的

实例

文件名:MammalInt.java

public class MammalInt implements Animal{

public void eat(){
System.out.println(“Mammal eats”);

}

public void travel(){
System.out.println(“Mammal travels”);

}

public int noOfLegs(){
return 0;
}

public static void main(string args[]){
MammalInt m=new MammalInt();
m.eat();
m.travel();

}

一个类只能继承一个类但是可以实现多个接口
一个接口能继承另一个接口,接口的继承使用extends关键字,子接口继承父接口的方法

对接口的理解
接口是个规范,用来统一标准,知道这个是做什么的,但具体不用知道怎么做。

通俗的理解
接口就是个招牌。比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你就知道今天中饭有着落了。KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿(实现接口)。那么为神马我们要去定义一个接口涅,这个店可以直接卖炸鸡腿啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不能直接简单粗暴的冲进去叫服务员给两个炸鸡腿了。要么,我们就要进去问,你这里卖不卖炸鸡腿啊,卖不卖汉堡啊,卖不卖圣代啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。要么,我们就要记住,中山路108号卖炸鸡,黄山路45号卖炸鸡(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖炸鸡腿,我们也不可能知道(不利于扩展)。

作者:Ivony
链接:https://www.zhihu.com/question/20111251/answer/16585393
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

没有更多推荐了,返回首页