接口
- 概念
抽象类型,是抽象方法的集合(如果某个类实现接口,就必须实现接口中所有的方法,除非这个类是个抽象类)。一个类通过实现接口的方式,实现接口的抽象方法。
- 关键字interface
- 接口与类相似点
一个接口可以有多个方法。
接口文件保存在.java结尾的文件中,文件名使用接口名。
接口的字节码文件保存在.class结尾的文件中。
接口相应的字节码文件必须在与包名称想匹配的目录结构中。
- 接口有类的区别
接口不能实例化。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了static和final变量。
接口不是被类继承,而是被类实现。
接口支持多继承。
- 接口特征
接口中的变量默认具有public static final修饰符。
接口中的方法默认具有public abstract修饰符。
接口中的方法不能在接口中实现,只能有实现接口的类来实现。
- 抽象类和接口的区别
抽象类中的方法可以有方法体。
抽象类的成员变量可以是各种类型的。
接口中不能有静态代码块以及静态方法(用static修饰)
一个类只能继承一个类,接口可以实现多个接口
- 类的声明
package com.javawu.interfaceDemo;
//如果某个类实现接口,就必须实现接口中的所有方法
//接口相当于一个特殊的抽象类
public interface AlertInterface {
//接口中的变量默认具有public static final修饰符
String brand = "报警";
//声明一个报警的方法
//接口中的方法默认具有public abstract修饰符
void alert();
}
package com.javawu.interfaceDemo;
//Java中类只能有一个直接父类
//Java中类是单继承,但是可以实现多个接口
//implements要写在extends的后面
public class HomeDoor extends Door implements AlertInterface,GPSInterface{
public void run() {
}
@Override
public void alert() {
// TODO Auto-generated method stub
System.out.println("报警");
}
@Override
public void position() {
// TODO Auto-generated method stub
System.out.println("获取位置");
}
}
package com.javawu.interfaceDemo;
//接口可以继承多个接口
public interface InterfaceDemo extends AlertInterface, GPSInterface {
}