1. 程式人生 > >【java基礎】abstract抽象類、方法的特點及注意事項

【java基礎】abstract抽象類、方法的特點及注意事項

摘要:本文引自畢老師Java程式碼。

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



特點:
1,方法只有宣告沒有實現時,該方法就是抽象方法,需要被abstract修飾。
	抽象方法必須定義在抽象類中。該類必須也被abstract修飾。
2,抽象類不可以被例項化。為什麼?因為呼叫抽象方法沒意義。
3,抽象類必須由其子類覆蓋了所有的抽象方法後,該子類才可以例項化。
	否則,這個子類還是抽象類。


1,抽象類中有建構函式嗎?
	有,用於給子類物件進行初始化。


	
2,抽象類可以不定義抽象方法嗎?
	可以的。 但是很少見,目的就是不讓該類建立物件。AWT的介面卡物件就是這種類。
	通常這個類中的方法有方法體,但是卻沒有內容。

	abstract class Demo
	{
		void show1()
		{}
		

		void show2()
		{}
	}



3,抽象關鍵字不可以和那些關鍵字共存?
	private 不行
	static	不行
	final	不行



4,抽象類和一般類的異同點。
	相同點:
		抽象類和一般類都是用來描述事物的,都在內部定了成員。
	不同:
		1,一般類有足夠的資訊描述事物。
		   抽象類描述事物的資訊有可能不足。
		2,一般類中不能定義抽象方法,只能定非抽象方法。
		   抽象類中可定義抽象方法,同時也可以定義非抽象方法。
		3,一般類可以被例項化。
		   抽象類不可以被例項化。




5,抽象類一定是個父類嗎?
	是的。因為需要子類覆蓋其方法後才可以對子類例項化。 




*/

abstract class Demo
{
	abstract /*抽象*/ void show();
	
}

/*

class DemoA extends Demo
{
	void show()
	{
		System.out.println("demoa show");
	}
}
class DemoB extends Demo
{
	void show()
	{
		System.out.println("demob show");
	}
}
*/
abstract class 犬科
{
	abstract void 吼叫();
}

class 狗 extends 犬科
{
	
	void 吼叫()
	{
		System.out.println("汪汪");
	}
}
class 狼 extends 犬科
{
	void 吼叫()
	{
		System.out.println("嗷嗷");
	}
}



class AbstractDemo 
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}