接口:定义一套规范,让需要使用这套规范的类去实现
例如:USB接口,只要遵循2.0或者3.0协议就可以使用,各个厂商对这个接口协议的实现可以不同
接口的作用:
1.让代码规范起来,不同的类需要相同的功能,但是功能的实现方式不同,此时我们对外的方法名等这些定义是统一的
2.松耦合:对外只开放接口,使用者虽然使用的是具体类的功能,但使用者只和接口打交道
通过多态中的父类型引用子对象
特点:
1.接口中的成员方法默认被public abstract修饰
2.接口不能被实例化,要使用,只能是某个类来实现该接口
3.实现接口的普通类,必须实现接口中所有的抽象方法
4.类实现接口的关键字为implements
5.一个类可以实现多个接口逗号隔开即可
6.接口中定义的变量是,全局静态常量
7.接口可以继承多个接口(多继承有别与类)
interface MyInteface{
//接口中定义的变量默认被 public static final 修饰
int a = 0;
//在接口中定义的成员方法默认被public abstract修饰
public abstract void test();
void run();
//上面两个方法实际相同
//在JDK1.8之后,接口中可以定义默认方法,默认方法有方法体
public default void math() {
}
}
//一个接口可以继承多个接口
interface A extends Fly,MyInteface{
//一个接口可以继承多个接口
}
//实现接口
class SubClass implements MyInteface,Fly{
@Override
public void test() {
// TODO Auto-generated method stub
}
@Override
public void run() {
// TODO Auto-generated method stub
}
}
public class Interface {
public static void main(String[] args) {
// MyInteface mi = new MyInteface();
//接口可以看作是一个特殊的类,所以实现了接口类,也可以体现多态性
MyInteface mi = new SubClass() ;
mi.test();
}
}
final:
1.final修饰类,这个类被称为最终类不可以被继承
2.final修饰变量,变量的值一旦确定,就无法更改
3.final修饰方法,方法不可以重写,但是可以重载