、接口
接口是一个类,接口是一个抽象类,因为接口里面的方法都是抽象方法。
1.定义接口语法
class interface 类名{
抽象方法…
}
/*
- 创建一个接口类 类名是Inter1
- 接口里面抽象方法都可以省略abstract
- 接口类是比抽象类更抽象的类
- /
public interface Inter1 {
//接口里面不能有非抽象方法
/public void method1(){
}/
// 这面2个方法是重载方法
public abstract void method(); //抽象方法
void method(int a); //抽象方法
void method2();
public void method3();
//有方法体的static方法 和上面的方法不是重载关系
//接口里面可以有static的带方法体的方法
static int method(int x,int y){
return x+y}
2.普通类实现接口
implements 关键字 一个类实现一个接口父类
class Zi implements Fu{ //子类实现一个接口类
}
3.接口中成员的特点
成员属性
接口里面的成员属性(成员变量)都是静态常量 ,前面默认都省略了 public static fina
成员方法
1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中
的变量也称之为常量,其值不能改变。后面我们会讲解static与final关键字
2、接口中可以定义方法,方法也有固定的修饰符,public abstract
3、接口不可以创建对象。
4、子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。
4.类和接口多种形式
1.一个类可以实现多个接口
/ - 一个类可以实现多个接口
- /
public class Zi implements Fu1,Fu2,Fu5{
}
2.一个类继承另外一个类同时实现接口
/ - 一个类继承另一个类同时实现接口(多个)
- /
public class Zi2 extends Fu3 implements Fu1,Fu2{
}
3.一个接口可以继承多个接口
/ - 一个接口 继承 另外的接口
- 用extends关键字
- /
public interface Fu6 extends Fu1,Fu2 {
}
一个类继承一个父类 , 继承是单继承
一个类实现多个父类接口 ,接口可以多实现
5.继承(extends)和实现(implements)对比
extends和implements都是关键字。都能产生父子类关系,继承类,实现接口
继承:子类是父类 //狗狗是动物 学生是人 老师是人
实现:子类拥有父类(能力,功能,规范) //风扇有USB功能 鼠标有USB接口功能
6.接口和抽象类的区别
相同点:
l 都位于继承的顶端,用于被其他类实现或继承;
l 都不能直接实例化对象;
l 都包含抽象方法,其子类都必须覆写这些抽象方法;
区别:
l 抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方
法;
l 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)
二者的选用:
/ - 一个类继承另一个类同时实现接口(多个)
- /
public class Zi2 extends Fu3 implements Fu1,Fu2{
}
/ - 一个接口 继承 另外的接口
- 用extends关键字
- */
public interface Fu6 extends Fu1,Fu2 {
}
一个类继承一个父类 , 继承是单继承
一个类实现多个父类接口 ,接口可以多实现
l 需要定义子类的行为,又要为子类提供共性功能时才选用抽象类;
7.接口的在开发中的好处
1、接口的出现扩展了功能。
2、接口其实就是暴漏出来的规则(约束),约束了方法的定义
3、接口的出现降低了耦合性,即设备与设备之间实现了解耦。