什么是接口?
接口从语法角度来说像是一种特殊的抽象类,两者都可以包含抽象方法且不能创建对象。接口是一种标准,通常用来约束其子类应具备的功能。接口是一种能力和约定
接口的语法
使用interface关键字定义接口没有构造方法,不能创建对象只能定义:公开静态变量、公开抽象方法JDK8及以上:允许有静态方法和默认方法
接口和抽象类的异同
相同:*可编译成字节码文件*不能创建对象*可以作为引用类型*具有Object类中所定义的方法*类和接口中的抽象方法都需要被重写不同:*所有属性都是公开静态常量,隐式使用publicstaticfinal修饰*所有方法都是公开抽象方法,隐式使用publicabstract修饰*没有构造方法、动态代码块、静态代码块*普通类只能继承一个类,但可以实现多个接口
接口的规范
interface A{
// 默认是公共抽象方法,访问级别为public
public void test(){
}
}
class B implements A{
// 重写以后,访问级别要更高,所以只有public
// protected default private(编译出错)
public void test(){
}
}
接口的多态
interface A{
public void a();
}
class B implements A{
//实现接口,重写父类抽象方法
public void a(){
System.out.println('a()');
}
}
class Test{
public static void main(String[] args){
A a1 = new B(); //接口作为父类引用
a1.eat(); //调用重写的方法,实现多态
}
}
类与接口的关系
类与类的关系继承关系,用extends来描述继承关系;单继承语法:classAextendsB类与接口之间的关系实现关系,类实现接口,implements来实现一个或多个接口;多实现语法:classAimplementsIB1,IB2,{}接口与接口的关系接口继承接口;extends关键字来描述继承关系;接口之间的多继承IAextendsIB1,IB2,{}
文章为作者独立观点,不代表观点