接口:
1.java使用interface这个关键字来声明接口,修饰符一般都是public,interface后就是接口的名字
2.java8之前接口内不能实现方法,接口方法不需要加修饰符,加与不加都是public abstract
3.接口与类不同,他的方法没有实现代码定义一个接口本身并没有做什么
4.java使用implements这个关键字表示接口,前面是类名,后面是接口名
public class Point inplements MyComparable{}
5.一个类可以实现多个接口,表明类的对象具备多种能力,各个接口之间以逗号分隔
public class Test implents Interface1,Interface2
6.接口不能new,对象只能通过类来创建,可以声明接口类型的变量,引用实现接口的类对象
Interface1 p1=new classname();
7.接口中的变量
public interface Interface1{public static final int a=0;}
修饰符可选,但不写也是public static final
使用:Interface1.a
8.接口的继承
接口同样可以使用extends关键字继承,不同的是一个接口可以继承多个父接口,中间以逗号相隔
9.类的继承与接口
类可以在继承基类的情况下,同时实现一个或多个接口 关键字extends要放在implement之前
10.接口也可以使用instanceof关键字,用来判断一个对象是否实现了某接口
11.使用组合和接口替代继承
12.java8和9对接口的增强:
java8中允许在接口中定义两类新方法:静态方法和默认方法,他们都有实现体
默认方法用default关键字表示,有默认的实现,实现类可以改变它的功能,也可以不改变
引入默认方法主要是函数式数据处理的需求,是为了便于给接口增加功能
在java8中,静态方法和默认方法都必须是public的,java9去除了这个限制,他们可以是private的,主要为了方便多个静态或默认方法复用代码