/*抽象類:
抽象:籠統,模糊,看不懂!不具體。
特點: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,抽象類可以不定義抽象方法嗎?可以的。但是很少見,...