-
概念
接口interface:接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合 -
格式
使用interface来进行声明,使用implements来实现接口
//接口模板
public interface InterfaceName{
public abstract void Act();
}
//一个类实现接口模板,多个接口使用逗号隔开
public class ClassName implements Interface01,Interface02,[...] {
...
}
//一种常用模式模板
public class ZiLei extends ChouXiangLei implements InterfaceXX,InterfaceXXX{
...
}
-
特点
1.成员变量:只能是public static final修饰,public static final [数据类型] [变量] = 值;
2.成员方法:只能是public abstract修饰,并且接口中所有的方法不能有具体的实现;
3.接口不可以创建对象,必须要实现类进行重写其抽象方法; -
类和接口的简单区别
1.类和类:相互之间只支持 单继承,一个子类只能继承一个父类;
2.接口和接口:相互之间可支持 多"实现(继承)",一个子接口可以实现多个父接口;(区别多层继承和多继承)
3.类和接口:类 实现(implements)接口 -
抽象类和接口的语法区别
1.抽象类可以提供成员方法实现细节,接口只能包含public abstract的抽象方法;
2.抽象类可以包含各种成员变量,接口只能是默认隐藏的public static final修饰的成员变量;
3.抽象类可以包含静态代码块和静态方法,而接口中不能含有静态代码块以及静态方法;
4.一个类只能继承一个抽象类,而一个类却可以实现多个接口(接口弥补了java的单继承); -
抽象类和接口的设计思想区别
1.抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
2.抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。也就是说对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。
- 应用
package com.jagger.InterfaceTry;
public class Show {
public static void main(String[] args) {
AirPlane F22 = new AirPlane();
F22.Fight();
}
}
public abstract class Flyer {
public abstract void fly();
}
public interface InterFight {
public abstract void Fight();
}
public class AirPlane extends Flyer implements InterFight {
public void fly() {
System.out.println("飞机喷气发动机飞行");
}
public void Fight() {
System.out.println("飞机进行战斗");
}
}
注意事项
对于接口,里面的组成只有抽象方法和全局常量,所以很多时候为了书写简单,可以不用写public abstract 或者public static final。并且,接口中的访问权限只有一种:public,即:定义接口方法和全局常量的时候就算没有写上public,那么最终的访问权限也是public,注意不是default。