接口的概念
简介:java中接口可以说是抽象方法的集合,同时也是对类的一组需求描述,主要用来描述实现接口的类有什么功能,但并不给出每个功能的具体实现,接口在JDK8之前100%都是抽象方法,JDK8之后又新增默认方法和静态方法。
官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能).
理解:换句话说:"如果类遵从某个特定的接口,那么就履行这向服务",站在java的角度的意思为:如果这个类实现了某个接口那么这个类将被承认拥有这个接口的功能,比如:有一个Dird类,有一个Flight接口, 这个接口对应有一个飞行的抽象方法,当Dird去实现这个接口中的飞行方法,那么才承认Dird拥有飞行的功能。
接口的注意事项
- java中是没有c++那样的继承的,但是接口可以通过implements关键字来实现多继承.
- 接口与抽象类一样可以进行实例化不过需要重写接口里的所有方法。
- 接口中的变量都是默认常量
接口的使用
接口的基本语法为:
public interface People{
//接口中方法都是默认抽象方法
void reflection();//相当于public abstract void reflection();
}
People接口里的reflection()方法代表了人的特征,那么只要实现了People接口里的这个方法则实现类就会被接口承认这个类是人类,因为他具有人类独特的方法思考,如:
public interface People{
//接口中方法都是默认抽象方法
void reflection();//相当于public abstract void reflection();
}
class realizeHuman implements People{
@Override
public void reflection() {
System.out.println("认真思考问题");//人的特征
}
}
接口中的默认方法
接口中的默认方法是在JDK8的时候新加入的,据说是因为当时的接口需要引入新的方法,但是如果引如新的方法,那些他的实现类全部都要在重写一遍新的方法,很不方便,所以在JDK8的时候引入了接口的默认方法,默认方法是有方法体的,但是接口的实现类不必强制去重写,如:
public interface People{
//接口中方法都是默认抽象方法
void reflection();//相当于public abstract void reflection();
//接口中的默认方法,可以重写也可以不用重写
default void eat(){
System.out.println("爱吃吃大米饭");
}
}
class realizeHuman implements People{
@Override
public void reflection() {
System.out.println("认真思考问题");//人的特征
}
}
接口中的静态方法
与默认方法相同接口中的静态方法也是与JDK1.8加入,接口的静态方法可以通过接口直接去调用如:
public interface People{
//接口中方法都是默认抽象方法
void reflection();//相当于public abstract void reflection();
//接口中的默认方法,可以重写也可以不用重写
default void eat(){
System.out.println("爱吃吃大米饭");
}
//静态方法
static void drink(){
System.out.println("多喝热水");
}
}
class Test_1{
public static void main(String[] args) {
People.drink();
}
}
注意:这里不可以用实现接口的类去调用接口中的静态方法.