我的學習之路-JAVA-04

/*
抽象類與抽象方法
特點:
	1.抽象方法定義在抽象類中,必須被abstract修飾
	2.抽象類不能被實例化,因爲調用抽象方法沒有意義
	3.抽象類必須有其子類覆蓋了所有的抽象方法後,該子類纔可以被實例化,否則這個子類還是抽象類 

細節:
	1.抽象類雖然不能被實例化,但是也有構造函數,以爲可以給子類對象初始化

	2.抽象類中可以不定義抽象函數,目的是不讓該類創建對象,但是很少見,如AWT的適配器對象就是這樣的

	3.abstrastic不可與private,static, final共同存在

	4.抽象類一定是一個父類


*/


/*
抽象類練習:
	
	某公司有程序員和項目經理,程序員有姓名,工號,工資屬性,有工作行爲
	項目經理有有姓名,工號,工資,獎金屬性,有工作行爲
	爲他們進項建模

*/

abstract class Employee
{
	private String name;
	private String num;
	private double pay;

	Employee(String name, String num, double pay)
	{
		this.name = name;
		this.num  = num;
		this.pay = pay;
	}

	public abstract void work();
	public void show()
	{
		System.out.println(this.name);
		System.out.println(this.num);
		System.out.println(this.pay);
	}

}

class Programmer extends Employee
{
	Programmer(String name, String num, double pay)
	{
		super(name, num, pay);
	}

	public void work()
	{
		System.out.println("程序員工作。。。");
	}
}

class Manager extends Employee
{
	double prize;
	Manager(String name, String num, double pay, double prize)
	{
		super(name, num, pay);
		this.prize = prize;
	}

	public void work()		
	{
		System.out.println("經理工作。。。");
	}

	public void show()
	{
		super.show();
		System.out.println(this.prize);
	}
}

class AbstractDemo
{
	public static void main(String[] args)
	{
		Programmer a = new Programmer("ming","12345",8000);
		a.work();
		a.show();

		Manager b = new Manager("fei","56789",10000,3000);
		b.work();
		b.show();
	}
}

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