轉載自https://my.oschina.net/cdzsc/blog/86107
在抽象類中,可以包含一個或多個抽象方法;但在接口(interface)中,所有的方法必須都是抽象的,不能有方法體,它比抽象類更加“抽象”。
1. 為什么接口中只能定義static final:
1.1 static(這時暫且認為是變量)解釋:因為一個類可以實現多個接口,如果一個類同時實現了多個接口而每個接口中都定義了同一個變量的話就會產生在類中不知道是哪個接口中的變量了,所以必須定義成static的,每個接口擁有各自的這個變量。
1.2 final解釋:因為一個接口可以被多個類實現,如果不定義成final的話每個實現了該接口的類都去改變這個變量就會產生錯誤,所以必須定義成final。
public interface SataHdd{ //連接線的數量 public static final int CONNECT_LINE=4; //寫數據 public void writeData(String data); //讀數據 public String readData(); }
注意:接口中聲明的成員變量默認都是 public static final 的,必須顯示的初始化。因而在常量聲明時可以省略這些修飾符。
2. 為什么抽象類中可以定義變量:
因為每個類只能有一個父類,就不會產生上述的接口中的一些問題。