Java 接口
本章目标
-
掌握编程、实现、继承接口的语法
-
掌握接口的好处
-
掌握接口与多态的关系
-
掌握抽象类与接口的区别
接口是什么
接口就是定义的一套规范或标准
接口的定义
在 Java 中使用关键字 interface 定义接口
interface 接口名 { 接口方法; }
举例
interface ICar { public void start( ); public void run( ); }
接口的特点
-
使用 interface 关键字来定义接口
-
接口中的方法都是抽象方法(只有方法签名,没有方法体)
-
接口不能被实例化,接口可以被类实现,类实现接口使用 implements 关键字,一个类可以实现多个接口
-
当一个类实现某一个接口时,必须实现这个接口中定义的所有抽象方法。否则这个类必须定义成抽象类
-
接口中还可以定义成员变量,但这些变量默认是用public static fianl修饰的,变量值也不能更改(这种变量也可以叫作常量)
接口的使用
interface ICar { //接口 void start(); //接口方法 void run(); //接口方法 } class SportsCar implements ICar { //实现接口类 public void start() { //实现接口方法 System.out.println("启动跑车"); } public void run() { //实现接口方法 System.out.println("行驶跑车"); } } ICar car = new SportsCar( ); car.start( ); car.run( );
接口与实现类区别
接口:对外提供统一的接口方法,隐藏接口方法的实现细节
实现类:实现接口方法的所有细节,通常外部使用者并不需要关心方法的内部实现细节
接口的优点
-
接口可以用来对类提供规范,避免类在设计上的不一致性
-
接口可用于间接实现多重继承
-
一定程度上保证了代码的安全性(使用者只需通过调用接口提供的方法,而隐藏方法的具体实现)
接口与抽象类的区别
相同点
-
接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他的类实现和继承
-
接口和抽象类都是可以包含抽象方法的,实现接口或是继承抽象类的普通子类都必须实现这些抽象方法
不同点
-
接口只能包含抽象方法,不能包含已经提供实现的方法;抽象类则完全可以包含普通的方法
-
接口不能定义静态方法;抽象类可以定义静态方法
-
接口里面不能够包含初始化块;但是抽象类里面则完全可以包含初始化块
-
一个类最多只能有一个直接父类,包括抽象类;但是一个类可以直接实现多个接口,通过实现多个接口可以弥补Java中的单继承的不足
-