1.接口中的成员
(1)jdk7及之前:抽象方法(默认public abstract)、成员变量(默认public static final)
(2)jdk8:默认方法(public default)、静态方法(public static)
(3)jdk9以后:私有方法
2.默认方法
可以重写,可以不重写,默认方法和静态方法可以作为一个临时添加的新功能放在接口里
public interface USB {
public abstract void open();
public abstract void close();
public default void methodef(){
System.out.println("我是鼠标默认方法");
}
}
3.接口和抽象类的区别
相同点:
a.都位于继承体系的顶层,被子类实现或者继承
b.都不能new对象
c.都包含抽象方法,继承或者实现时都需要重写
不同点:
a.抽象类:一般作为父类使用,包含构造方法,成员变量,成员方法等
b.接口:成员单一,一般都是方法,视为功能大集合
c.类不能多继承(一个类继承多个类),接口可以
4.多态
多态不可使用子类的特有方法,如果要使用则需向下转型。
public static void method(Animal animal){
if(animal instanceof Cat){
animal.eat();
((Cat) animal).catchMouse();
}
if(animal instanceof Dog){
animal.eat();
((Dog) animal).lookDoor();
}
}
}