抽象類和抽象方法練習

抽象類和抽象方法知識點

   抽象類好比一個不具體的汽車藍圖,它不可以直接創造汽車,但是按照它繪製的另一個具體的藍圖可以。


 【抽象類的定義】

 1.類:用abstract修飾

 2.抽象方法:用abstract修飾,且用分號;結束

 【抽象類的特點】

 1.抽象類和抽象方法都需要被abstract修飾。

 2.抽象方法一定要在抽象類中;只有抽象類纔可以定義抽象方法。

 !3.抽象類不可以創造實例--不可以用new創造對象--原因:調用抽象方法沒意義。

 4.只有覆蓋了抽象類中所有的抽象方法後其子類纔可以實例化,否則該子類還是抽象類。

【抽象類的細節問題】

  • 抽象類一定是父類嗎?

是的,因爲是不斷抽取而來的

  • 抽象類是否有構造方法

但是不可以創建對象,但是子類的構造方法會調用父類的構造方法。

  • 抽象類中是否可以不定義抽象方法

可以

  • 抽象關鍵字不可以和哪些關鍵字共存

Final:抽象類需要子類

Private:抽象方法要被覆蓋

Static:靜態類的特點是可以直接被類調用

抽象類與抽象方法練習

package abstractlearning;
/**
 * 練習抽象類和抽象方法
 * 程序員:姓名、工號、薪水、工作內容
       項目經理:姓名、工號、薪水、獎金、工作內容
       對該需求進行數據建模
 */
abstract class Employee{
	private String name;
	private String id;
	private double pay;
	/*
	 * 構造一個員工,一初始化就具備三個屬性
	 */
	public Employee(String name,String id,double pay) {
		this.id=id;
		this.name=name;
		this.pay=pay;
	}
	/*
	 * 工作行爲:不清楚
	 */
	abstract void work();		//工作內容
}
class programer extends Employee{
	public programer(String name, String id, double pay) {
		super(name, id, pay);
	}
	void work(){
		System.out.println("編程");
	}
}
class Manager extends Employee{
	public Manager(String name,String id,double pay) {
		super(name,id,pay);
	}
	void work() {
		System.out.println("管理");
	}
}
public class pratice {
	public static void main(String[] args) {
		Employee a=new programer("張三","1",10000);
		a.work();
	}
}

 

發佈了10 篇原創文章 · 獲贊 13 · 訪問量 622
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章