Interface and abstract

Interface

成员变量

默认并只能public static final 类型,(省略也是)

成员方法

默认是 public abstract ,(省略也是)

JDK7以前:只能抽象方法
JDK8:可以定义有方法体的方法 {} ,方法也可以是 static 的,也可以是 default
JDK9:可以定义私有方法 private (如此就必须得写方法体了)

接口的继承

1
public interface Hockey extends Sports, Event

多个接口的方法同名,强制重写

标记性接口

接口里没有任何抽象方法

abstract class 抽象类

1
2
3
4
5
6
7
8
9
abstract class Animal {

public void eat() {
System.out.println(" is eating.");
}

//定义一个抽象的方法move,没有具体的实现,由子类来重写
public abstract void move();
}

必须由子类 Override 抽象方法(否则子类也必须是抽象类)

抽象方法可选的,抽象方法出现在的类 只能是抽象类