一、什么是接口?
类似电脑的USB
二、接口的基本语法(一)
1.使用interface定义
(可以把接口看做一种特殊的抽象类)
(抽象类就是用来做父类的)
2.接口中只包含常量和方法。
(接口中无变量)
3.接口当中的方法都是抽象方法(不需要加abstract权限)
(接口中不允许有非抽象方法)
4.接口当中的方法都是public权限。
(接口就是为了让其他类来使用的)
接口 — USB接口
package course6;
public interface USB {
//public String name;此句不可执行
//接口中的方法默认为abstract方法,不必注明
void read();//默认为public权限,抽象方法
void write();//默认为public权限,抽象方法
}
package course6;
public interface WiFi {
void open();
void close();
}
package course6;
//实现一个接口用implements关键字
//类的继承只能是单继承,一个类最多只能继承一个父类
//在接口中,一个类可以实现多个接口,实现一个以上接口时,各个接口用逗号间隔
public class USBPhone implements USB, WiFi{
//实现read方法
public void read(){
System.out.println("USBPhone Read!");
}
//实现write方法
public void write(){
System.out.println("USBPhone Write!");
}
//实现WiFi接口中的open方法和close方法
public void open(){
System.out.println("WiFi Open!");
}
public void close(){
System.out.println("WiFi Close!");
}
public static void main(String[] args){
USBPhone usbPhone = new USBPhone();
usbPhone.read();
usbPhone.write();
usbPhone.open();
usbPhone.close();
}
}
输出结果:
USBPhone Read!
USBPhone Write!
WiFi Open!
WiFi Close!
为什么要使用接口?
1.接口只关心操作,并不关心操作的具体实现,即只关心方法的类型、名称和参数,但不关心方法的具体行为,(接口中只有abstract方法)。
2.实现同一个接口的两个类就会具有接口所规定的方法,但方法内部的细节(方法的具体内容)可能不同。
3.不同的类可以实现相同的接口,同一个类也可以实现多个接口。
abstract抽象类和接口interface接口的比较:
1.abstract类和接口都可以有abstract方法;
2.接口中值可以由常量,不能有变量;而abstract类中既可以有常量也可以有变量;
3.abstract类中也可以由非abstract方法,接口不可以。
package course6;
public interface A {
void funA();
}
package course6;
public interface B {
void funB();
}
package course6;
public interface C extends A, B{
//接口之间是可以继承的
//接口是否可以继承多个接口?-Java中一个接口可以继承多个接口
void funC();
}
package course6;
public class TestABC implements C{
public void funC(){
}
public void funA(){
}
public void funB(){
}
}