接口
特征
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。