接口的定义、特点、实现
1、概念
接口的目的是指相关或者不相关类的多个对象的共同行为
接口体现了程序设计的多态和高内聚低耦合的设计思想
接口反应某一类事物具有什么能力
-
关注该类事物可以完成什么操作
-
但是不关注操作的具体细节
2、声明接口
-
修饰符 interface 接口名称();
-
所有的接口都是抽象的
3、继承接口
修饰符 interface 子接口名称 extends 父接口名称1,父接口名称2....
4、实现接口
修饰符 class 类名 implements 接口名
注具体类实现接口要实现接口中的方法
5、接口的特点
-
接口不是类、没有构造方法、不能实例化
-
接口之间的继承也是用 extends 实现 但接口可以继承多个父接口
-
接口中所有“没有方法体”的方法都是抽象方法( 默认都是 public abstract 修饰 )
-
在接口中只能声明常量默认是 public static final 修饰的
6、接口在 Java 8 的反人类操作
-
从 Java 8 开始允许在接口中定义 static 修饰的方法
-
访问修饰符可以是 public 、 private
-
访问修饰符 不可以是 protected 或 默认
-
-
从 Java 8 开始允许在接口中定义 default 修饰的、非抽象的方法
7、示例
充电接口
package interfaceTest;
public interface Chargeable {
void charge();
}
可传输的接口
package interfaceTest;
/**
* 可传输的,便携式的
*
* */
public abstract interface Transfer { // 所有的接口都是抽象的
// 接口中所有的没有方法体的方法都是 默认 public abstract 修饰的
void transmission();
}
USB 接口 继承 Transfer 和 Chargeable
package interfaceTest;
/**
* 1、在 Java 语言中 一个接口可以同时继承多个 父接口
* 2、当一个接口继承多个父接口时,父接口名称之间使用 逗号 隔开
*
* */
public interface USB extends Chargeable, Transfer {
}
UGreen 实现 USB 接口
package interfaceTest;
public class UGreen implements USB {
HuaWei 实现 USB 接口
package interfaceTest;
public class HuaWei implements USB{
package interfaceTest;
public class USBTest {
public static void main(String[] args) {
// USB u = new USB(); // 不能实例化接口
USB usb = null; // USB 是 usb 的编译时类型
// 接口类型的引用变量 指向了 其实现类类型的实例
usb = new UGreen();
usb.charge(); // 充电
usb.transmission(); // 传输数据
usb = new HuaWei();
usb.charge(); // 充电
usb.transmission(); // 传输数据
}
}
TransferTest 类
package interfaceTest;
public class TransferTest {
public static void main(String[] args) {
Transfer t = null; // 变量 t 的编译时 类型是 Transfer
t = new UGreen();
// 通过 变量 t 只能调用直接在 Transfer 中声明方法 Object 类
t.transmission();
String s = t.toString(); // 调用 Object 类中的方法
}
}

浙公网安备 33010602011771号