JAVA 接口
接口的定义
只有抽象方法的抽象类,并且其类内部只有常量的类我们称之为接口,但是接口并不属于类
使用关键字 interfaceinterface Plane{//定义了一个Plane接口 /** * 在接口中,所有的方法必须是抽象方法 即abstract修饰,但是方法没有修饰时,默认为abstract,也就是抽象方法 **/ public void show();//定义了一个方法 抽象方法不需要方法体 }
接口的实现
一个类可以实现多个接口,在实现多个接口时,各个接口之间用逗号隔开
一个类实现接口时,假如该接口有抽象方法,那么实现该接口的类必须要实现所有抽象方法
使用关键字implementsinterface Usb{//定义了一个Usb接口 public void show();//Usb接口中的抽象方法 } interface Phone{//定义了一个Phone接口 public void Call();//Phone接口中的Call方法 } class OPPO implements Usb,Phone{//定义了一个OPPO类,去同时实现Usb接口和Phone接口 public void show(){ //实现Usb接口中的show方法 System.out.println("在这里实现了Usb这个接口的抽象方法"); } public void Call(){ //实现Phone接口中的Call方法 System.out.println("在这里实现了Phone这个接口的抽象方法"); } }
注意: 假如一个接口存在父类,那么去实现这个接口的类也必须要实现这个接口父类的所有抽象方法,在下面继承中会详细分析
接口的继承
一个接口可以通过extends关键字同时继承多个接口,但是只能继承接口,不能是抽象类(abstract class 类名)或者普通类(class 类名)
interface Phone{ public void show(); } interface iPhone{ public void Call(); } interface iPhoneX extends Phone,iPhone{ public void NoHole(); } class MyiPhoneX implements iPhoneX{ public void show(){ System.out.print("这里实现了Phone接口的show抽象方法"); } public void Call(){ System.out.print("这里实现了iPhone接口的Call抽象方法") } public void NoHole(){ System.out.print("这里实现了iPhoneX接口的NoHole抽象方法"); } }
接口的特点-------与抽象类的比较
接口中的方法只能是抽象方法
抽象方法中可以有自己的方法,不一定为抽象方法
接口中不能定义非常量属性
抽象类中可定义非常量属性
接口可以被多继承(extends),一个类可以实现多个接口(implements)
抽象类只能单一继承
接口更自然的实现多态
接口使得设计和实现完全分开
接口更容易搭建程序框架
接口是一个规范,例如一些协议一般,http协议,蓝牙协议等等,是一个标准
instanceof运算符
该运算符用于判断一个对象是否属于一个类或者一个接口,返回结果为boolean型
//用法如下: if(P instancesof ColorPrinter){ System.out.println("P是ColorPrinter的实例对象"); }else System.out.println("不是ColorPrinter的实例对象");
知识拓展-------for循环
for循坏的另用
在只需要获取数组中的值,并不需要索引数组时,可以使用如下方法String [] name = new String[5]; for(String x : name){ System.out.println(name); }
个人觉得与Python中的循环很像,有种说不出的感觉