在JAVA中接口的主要功能是解决类只能继承一个的局限性。
接口不是类,是对于类的一组需求的描述,是从多个相似类中抽象出来的规范。接口算是一种特殊的的类,接口里只能有全局常量跟一些方法(抽象方法,类方法,默认方法私有方法)
接口的声明:
关键字:interface.
(修饰符)interface (接口名){
静态常量(自动增加public static fiinal修饰符,因此接口里定义成员变量时只能在定义时制定默认值)
方法(自动增加public修饰符,只能是抽象方法1.8以后增加类方法(类方法只能使用static修饰且不能使用default修饰)跟默认方法(默认方法只能使用default修饰,且不能使用static修饰),1.9以后增加私有方法)
内部类,接口,枚举定义.......(默认采用 public static 修饰符)
}
接口的修饰符可以是public或者省略,如果省略的化就会默认(default)。
接口名跟类名的有着相同的命名规则。
一个接口可以继承很多接口,但是只能继承接口不能继承类。
接口的使用:
关键字implements.
(修饰符) class (类名) implements{
}
一个类可以继承一个类的同时实现很多个接口。(这是接口最大的优势)
一个类实现了一个或者多个接口以后,这个类必须实现所有接口里的抽象方法。否则这个类只能定义为抽象类。
一个类实现了一个或者多个接口以后,这个类会获得所有接口里的常量,方法。因此实现接口也是一种特殊的继承。
接口的声明:
关键字:interface.
(修饰符)interface (接口名){
静态常量(自动增加public static fiinal修饰符,因此接口里定义成员变量时只能在定义时制定默认值)
方法(自动增加public修饰符,只能是抽象方法1.8以后增加类方法(类方法只能使用static修饰且不能使用default修饰)跟默认方法(默认方法只能使用default修饰,且不能使用static修饰),1.9以后增加私有方法)
内部类,接口,枚举定义.......(默认采用 public static 修饰符)
}
接口的修饰符可以是public或者省略,如果省略的化就会默认(default)。
接口名跟类名的有着相同的命名规则。
一个接口可以继承很多接口,但是只能继承接口不能继承类。
接口的使用:
关键字implements.
(修饰符) class (类名) implements{
}
一个类可以继承一个类的同时实现很多个接口。(这是接口最大的优势)
一个类实现了一个或者多个接口以后,这个类必须实现所有接口里的抽象方法。否则这个类只能定义为抽象类。
一个类实现了一个或者多个接口以后,这个类会获得所有接口里的常量,方法。因此实现接口也是一种特殊的继承。
接口可以利用子类的向上转型来实现实例化