一、接口(interface)
生活中有什么接口?我们熟悉的USB接口,各种插座的接口,其需要相对应的充电线接口大小才能插入进入进行充电,我们不能用华为充电线给苹果手机充电一样。
1.1程序中的接口
概念:接口相当于特殊的抽象类,定义方式、组成部分与抽象类类似。使用interface关键字定义接口。
前面说了,抽象类像一个模板一样,那么接口就是一个正宗的模板了,他需要对应的类类实现它的功能。
//定义一个简单的动物接口
public interface Animal {
public void eat();
public void sleep();
}
实现接口 implements(接口可以实现多个)
//实现接口
public class Cat implements Animal {
@Override
public void eat() {
System.out.println("猫吃吃");
}
@Override
public void sleep() {
System.out.println("猫睡觉");
}
}
1.2 接口的定义
- 接口不是类,没有抽象方法,不能实例化
- 接口只能定义公开静态常量的属性,公开抽象方法
- 接口只能实现,也就是被其他类 implements,一个类只能继承一个类,但能实现多个接口
1.2.1 接口的属性与方法
- 属性
上面可以看到,在接口里定义一个属性,其他的修饰符为灰色,这代表着这是默认的public static final 时接口定义属性默认的访问修饰符
也就是说,就算你不写,编辑器会暗中帮你补全,如果时其他修饰符非静态公开常量的,会报错。
- 方法
- 方法是默认为公开抽象的
但也有不同的地方,在JDK1.8以后接口允许有static和default修饰的方法(新特性)(这个非常少用,或者基本看不到,就不多演示了)