Java學習第八天

抽象類:

抽象類可以沒有抽象方法,但一旦聲明爲抽象類(abstract),就不能用於實例化,即new xxx()是不允許的。

屬性和初始化塊不能用於抽象(abstract)。

抽象的只能是方法。一旦一個類中有abstract方法,則該類必須爲抽象類。

如果一個類實現了某個接口,但沒實現接口所提供的方法,則該類必須爲抽象類。

由於static修飾的方法屬於類,當一個方法用static修飾時,表明可以通過類直接調用而無須實例化,如果此時用abstract修飾,表明無方法體,這與static矛盾,因此static不能用於抽象方法。

final表明方法不能被重寫,所以final不能和abstract同時修飾一個方法。

 

接口:

接口定義了某些類的共同行爲規範。接口的目的是使規範和實現分離,降低軟件模塊之間的耦合性。

由於接口只是定義一組規範,因此接口裏面不能有構造方法,初始化塊。

接口裏只能包含屬性(即常量),方法(只能是抽象實例方法),內部類(或接口),枚舉。

接口裏成員默認是public ,如果想添加訪問修飾符,也只能是public。

 

 

package lesson7;
interface Output
{
	// static final且public
	int MAX_SIZE = 1000;

	//public abstract 不能用static,因爲與abstract矛盾
	void input();
	void output();

}

class Test
{
	public static void main(String[] args) 
	{
		//可以通過接口直接訪問接口的變量,因爲接口成員變量是public static final
		System.out.println(Output.MAX_SIZE);
		//錯誤。因爲MAX_SIZE爲final變量
		Output.MAX_SIZE=10;
	}
}

儘管接口不能顯示繼承任何類,但接口類型的引用變量可以直接賦值給Object引用變量。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章