抽象類

1、抽象類特點

(1)方法只有聲明沒有實現時,該方法就是抽象方法,需要被關鍵字abstract所修飾,抽象方法必須定義在抽象類中,該類也必須用abstract關鍵字進行修飾。

(2)抽象類不可以實例化,因爲調用抽象方法沒有意義。

(3)抽象類必須要有其子類覆蓋了所有的抽象方法後,該子類纔可以被實例化,否則該子類還是一個抽象類。

2、抽象類中的構造函數一般用於子類的初始化

3、抽象類中可以不定義抽象方法,但很少見,目的就是不讓該類創建對象。AWT的適配器對象就是這種類。通常該類中有方法體,沒有內容。

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

5、抽象類一定是個父類嗎?是的。因爲需要子類覆蓋其方法後纔可以對子類實例化。

class AbstractDemo1 
{
	public static void main(String[] args) 
	{
		Student s = new Student("旺財",23);
		Worker w = new Worker("小強",30);

		s.show();
		s.work();
		w.show();
		w.work();
	}
}

abstract class Person
{
	int age;
	String name;
	Person(String name, int age){   //構造函數用於給子類進行初始化
		this.name = name;
		this.age = age;
	}
	void show(){
		System.out.println("name="+this.name+"\n"+"age="+this.age);	
	}
	abstract void work();
}

class Student extends Person
{
	Student(String name, int age){
		super(name,age);
	}
	void work(){
		System.out.println("student is studying...");
	}
}

class Worker extends Person
{
	Worker(String name, int age){
		super(name,age);
	}
	void work(){
		System.out.println("worker is working...");
	}
}
程序運行結果:
name=旺財
age=23
student is studying..
name=小強
age=30
worker is working...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章