java中接口是一种引用数据类型;
1.一个格式
public interface 接口名称{
…
}
在任何版本的java中,接口都能定义抽象方法。
第二点说明接口中只有抽象方法。
2.实现类:必须覆盖重写接口中所有的抽象方法
格式:public class 实现类名称 implements 接口名称{
…
}
3.接口中的默认方法:可以实现接口升级的问题(即一个接口有多个实现类,但是接口升级了添加了其他抽象方法,而为了可以不修改实现类可以把新添加的方法定义为默认方法)
接口中的默认方法会被实现类继承而可以不被实现类实现,当然,实现类也可以覆盖重写接口的默认方法,重写了默认方法的实现类的对象调用的是实现类的方法,而没有覆盖重写接口的实现类的对象调用的是接口的默认方法。
格式:public default 返回值类型 方法名称(参数列表)
{
…
}
注意:
接口不能直接new(但是可以定义对象),需要有一个实现类(等同于子类)来实现接口。
例如:
没有使用new更不能调用接口中的方法:
之所以有这个疑问,是因为在后期学习spring项目时定义了接口(配置了xml文件)便直接调用其中的方法访问数据库,有些疑惑。可能这是spring强大的一个地方。
4.java 9以后接口中也可以有静态方法,调用格式:接口名.静态方法名()。实现类的对象不能调用接口的静态方法。
5.java 9以后接口中定义的私有方法(private),私有方法不被实现类访问。
6.接口中可以定义成员变量(常量),必须使用public static final 三个关键字进行修饰(final相当于c++中的const)。