什么是接口:java
在封装时,显示器封装了不少电子元件,最终向外暴露数据交互的孔——>>接口,目的在于实现设备和设备之间的通讯。编程
在Java中,接口表示一种规范/约束/要求实现者必须遵循该规范。用来约束使用者该怎么作。ui
Java中的接口spa
专家说:多个抽象类的抽象就是接口。code
说人话:在Java中最小的程序单元就是类,接口实际上是一个特殊的类。继承
Java中的接口表示规范,用于定义一组抽象方法,表示某一类事务必须具有的功能,要求实现类必须来实现该接口并提供方法实现。接口
//演示接口 interface IConnect{ String PI= "aaa"; //接口中的成员变量 void doWork(); //接口中的方法 interface IWatch{ // 接口中的类(接口) } } public class InterfaceTest { public static void main(String[] args) { System.out.println("AA"); } }
接口的定义和继承事务
类和类之间是继承关系:用extends来表示。class
接口和接口之间只能是继承关系:用extends来表示。变量
接口和实现类之间只能是实现关系:用implements来表示。
接口的实现
程序示例
interface PaXing{ void doWork(); //接口中的方法 } interface ShuiXing{ void doSwim(); //接口中的方法 } interface LiangQi extends PaXing,ShuiXing{ //接口的继承 void doSwim(); //接口中的方法 } class YYY implements LiangQi{ //类实现子类接口 public void doWork(){ System.out.println("This is YYY dowork Cat!"); } public void doSwim(){ System.out.println("This is YYY dowork Cat!"); } } class SSS implements PaXing,ShuiXing{ //类实现多接口 public void doWork(){ System.out.println("This is SSS dowork Cat!"); } public void doSwim() { System.out.println("This is SSS doswim Cat!"); } } class Fish implements ShuiXing{ //类实现单接口 public void doSwim(){ System.out.println("This is Fish doswim fish!"); } } public class InterfaceTest { public static void main(String[] args) { SSS a=new SSS(); a.doSwim(); a.doWork(); System.out.println("****************"); PaXing d= new SSS(); d.doWork(); //没有doSwim()方法 System.out.println("****************"); YYY b=new YYY(); //鄙视写法 b.doSwim(); b.doWork(); System.out.println("****************"); LiangQi c= new YYY(); //高级多态写法,面向接口编程。 c.doSwim(); c.doWork(); System.out.println("****************"); ShuiXing fish1= new Fish(); fish1.doSwim(); } }
运行结果
This is SSS doswim Cat! This is SSS dowork Cat! **************** This is SSS dowork Cat! **************** This is YYY dowork Cat! This is YYY dowork Cat! **************** This is YYY dowork Cat! This is YYY dowork Cat! **************** This is Fish doswim fish!
接口和抽象类的区别
相同点
不一样点
若是接口和实现类能够完成相同的功能,尽可能使用接口,面向接口编程。