java基礎知識回顧之抽象類

2021-09-06 18:08:57 字數 2034 閱讀 3607

/*

抽象類:

抽象:籠統,模糊,看不懂!不具體。

特點:1,方法只有宣告沒有實現時,該方法就是抽象方法,需要被abstract修飾。

抽象方法必須定義在抽象類中。該類必須也被abstract修飾。

2,抽象類不可以被例項化。為什麼?因為呼叫抽象方法沒意義。(因為沒有方法體)

3,抽象類必須有其子類覆蓋了所有的抽象方法後,該子類才可以例項化。

否則,這個子類還是抽象類。

1,抽象類中有建構函式嗎?

有,用於給子類物件進行初始化。

2,抽象類可以不定義抽象方法嗎?

可以的。 但是很少見,目的就是不讓該類建立物件。awt的介面卡物件就是這種類。

通常這個類中的方法有方法體,但是卻沒有內容。

abstract class demo

void show2()

}3,抽象關鍵字不可以和那些關鍵字共存?

private 不行,抽象方法被覆蓋,私有的話就不能覆蓋,會報非法的修飾組合錯誤

static 不行

final 不行

4,抽象類和一般類的異同點。

相同點:

抽象類和一般類都是用來描述事物的,都在內部定了成員。

不同:1,一般類有足夠的資訊描述事物。

抽象類描述事物的資訊有可能不足。

2,一般類中不能定義抽象方法,只能定非抽象方法。

抽象類中可定義抽象方法,同時也可以定義非抽象方法。

3,一般類可以被例項化。

抽象類不可以被例項化。

5,抽象類一定是個父類嗎?

是的。因為需要子類覆蓋其方法後才可以對子類例項化。

*/abstract

class

demo

/*class demoa extends demo

}class demob extends demo}*/

abstract

class

犬科class 狗 extends犬科}

class 狼 extends犬科}

class

abstractdemo

}

抽象類的應用:

/*

雇員示例:

需求:公司中程式設計師有姓名,工號,薪水,工作內容。

專案經理除了有姓名,工號,薪水,還有獎金,工作內容。

對給出需求進行資料建模。

分析:在這個問題領域中,先找出涉及的物件。

通過名詞提煉法。

程式設計師:

屬性:姓名,工號,薪水、

行為:工作。

經理: 屬性:姓名,工號,薪水,獎金。

行為:工作。

程式設計師和經理不存在著直接繼承關係,

但是程式設計師和經理卻具有共性內容。

可以進行抽取。因為他們都是公司的雇員

可以將程式設計師和經理進行抽取.建立體系.

*///

描述雇員。

abstract

class

employee

public

abstract

void

work();

}//描述程式設計師。

class programmer extends

employee

public

void

work()

}//描述經理。

class manager extends

employee

public

void

work()

}class

abstracttest

}class

person

public

string getname()

public

void

setname(string name)

}class student extends

person

}class worker extends

person

}

Java基礎知識 抽象類與介面

1.定義 用abstract關鍵字修飾,允許包含未實現方法的類被稱為抽象類。2.使用場景 如果擁有一些方法,並且想要其中一部分預設實現!3.定義格式 修飾符 abstract class 類名 注 1 抽象類不能例項化,既不能建立物件,只能作為父類用於被繼承 2 子類繼承乙個抽象類後,必須要實現父類...

java基礎之 抽象類

抽象類 抽象方法只有宣告,沒有實現時,該方法就是抽象方法,需要被abstract修飾,抽象方法必須定義在抽象類中,抽象類需要被abstract修飾。抽象類不可以被例項化。抽象類必須被其子類重寫後,該子類才可以例項化。否則這個子類還是抽象類。抽象類也有構造方法,用於給子類物件進行初始化 抽象類可以不定...

java基礎之抽象類

格式 修飾符 abstract 返回值型別 函式名 引數列表 abstract class 犬科 class 狗 extends 犬科 class 狼 extends 犬科 抽象類的一些解釋 1,抽象類中有建構函式嗎?有,用於給子類物件進行初始化。2,抽象類可以不定義抽象方法嗎?可以的。但是很少見,...