接口
特色
1、接口中的所有办法都是形象办法,不能蕴含办法的实现
2、接口中的所有办法的拜访润饰权限都是public,不写并不是默认拜访权限,而是public
3、接口不能被实例化
4、接口的子类必须要实现接口中的所有办法,跟抽象类有所不同,抽象类中的形象办法必须要被子类实现,一般办法能够不重写
5、子类能够实现多个接口
6、接口中的变量都是动态常量,如果没有应用static关键字润饰,它默认也示意动态常量,不必final关键字润饰,默认也是常量,不能批改
7、接口中的办法和常量无论是否增加public润饰,默认的权限有且仅有一个,就是public
用法
1、应用interface来润饰
2、接口中能够蕴含多个办法,且办法跟抽象类中的形象办法统一,不写实现,子类在实现的时候必须要实现这些办法的逻辑,将这些办法进行实现,就意味着具备了某种能力
3、子类实现接口应用implements
示例
接口(提供一种能力,数据传输dataTransfer()) Usb
package com.msbline.oop.interface1;public interface Usb { public void dataTransfer();}
实现类 Upan
package com.msbline.oop.interface1;public class Upan implements Usb{ @Override public void dataTransfer() { System.out.println("upan能够传输数据"); }}
实现类 Mouse
package com.msbline.oop.interface1;public class Mouse implements Usb{ @Override public void dataTransfer() { System.out.println("鼠标来点击屏幕"); }}
测试 Test
package com.msbline.oop.interface1;public class Test { public static void main(String[] args) { Mouse mouse = new Mouse(); mouse.dataTransfer(); Upan upan = new Upan(); upan.dataTransfer(); }}
接口与抽象类的区别
1、抽象类中的办法能够有形象办法,也能够有一般办法,接口中只能蕴含形象办法
2、抽象类应用abstract关键字来润饰,接口应用interface来润饰
3、子类应用extends关键字来继承抽象类,应用implements来实现接口
4、子类继承抽象类的时候必须要实现所有的形象办法,一般办法能够不重写,而接口中的所有办法必须实现
5、抽象类中能够定义成员变量,接口中只能定义动态常量
6、抽象类在子类实现的时候是单继承,而接口能够多实现
7、抽象类和接口都不能实例化,然而抽象类中能够有构造方法,接口中不能有形象办法
8、抽象类中能够实现接口,并且不实现接口中的办法,而接口只能继承接口,不能实现接口
9、抽象类中的形象办法的拜访权限能够应用public、protected和默认权限,而接口中的办法只能是public