我们今天来学习接口,和继承有点像,话不多说,开始正题~
一、接口
1.为什么要用接口
接口其实和继承很像,但是继承是 is-a 的关系,接口是 has-a 的关系,而且继承只能是一对一的关系,但是接口可以一对多,子类可以有多个接口,会方便许多,而且也体现出了多态性,更灵活
2.接口的语法——interface
首先我们来看一下,如何定义一个接口,示例如下:
public interface Animal {}
这样,我们就定义出了一个名字为Animal的一个接口
3.接口使用——implements
我们知道接口既然是 has-a 的关系,我们就一定会在接口里面抽象出其它类里面的共有属性(方法),比如说动物都会呼吸,那么我们就可以这样写:
public interface Animal {void breathe();
}
那么为什么不写成具体的方法呢?答案是接口当中不能具体的实现一个方法,除非用default修饰
接口中的方法默认是public和abstract(抽象)的,所以在定义方法时可以省略这些修饰符。接口中的变量默认是public 、static和final(常量)
那么我们再定义一个子类来接上这个接口~
public class Bird implements Animal{@Overridepublic void breathe() {System.out.println("Bird");}
}
大家注意!这里必须要重写接口中的方法!!!如果不重写,就把当前类改为抽象类~
那么我们怎么调用这个方法呢?我们写一个test类来测试一下~
public class test {public static void main(String[] args) {Bird bird = new Bird();bird.breathe();}
}
这样我们就可以调用了
如果想继承多个接口,它的格式是这样的:
public class Bird implements Animal,另一个接口的名字{@Overridepublic void breathe() {System.out.println("Bird");}重写另一个接口当中的方法~
}
二、继承和接口的对比
此处我们用一个表格给大家演示~
看完表格就比较容易区分继承和接口,下次用的时候也会有选择的用了
今天就到这里啦~
加油