1. 程式人生 > >抽象類 概述

抽象類 概述

java 抽象類概述

/*
	抽象類的概述:
		動物不應該定義為具體的東西,而且動物中的吃,睡等也不應該是具體的。
		我們把一個不是具體的功能稱為抽象的功能,而一個類中如果有抽象的功能,該類必須是抽象類。
		
	抽象類的特點:
		A:抽象類和抽象方法必須用abstract關鍵字修飾
		B:抽象類中不一定有抽象方法,但是有抽象方法的類必須定義為抽象類
		C:抽象類不能例項化
			因為它不是具體的。
			抽象類有構造方法,但是不能例項化?構造方法的作用是什麼呢?
			用於子類訪問父類資料的初始化
		D:抽象的子類
			a:如果不想重寫抽象方法,該子類是一個抽象類。
			b:重寫所有的抽象方法,這個時候子類是一個具體的類。
			
		抽象類的例項化其實是靠具體的子類實現的。是多型的方式。
			Animal a = new Cat();
*/

//abstract class Animal //抽象類的宣告格式
abstract class Animal {
	//抽象方法
	//public abstract void eat(){} //空方法體,這個會報錯。抽象方法不能有主體
	public abstract void eat();
	
	public Animal(){}
}

//子類是抽象類
abstract class Dog extends Animal {}

//子類是具體類,重寫抽象方法
class Cat extends Animal {
	public void eat() {
		System.out.println("貓吃魚");
	}
}

class AbstractDemo {
	public static void main(String[] args) {
		//建立物件
		//Animal是抽象的; 無法例項化
		//Animal a = new Animal();
		//通過多型的方式
		Animal a = new Cat();
		a.eat();
	}
}