抽象類的應用場景:
我們在描述一類事物的時候,發現該種事物確實存在著某種行為,
但是這種行為目前是不具體的,那麼我們可以抽取這種行為 的宣告,但是
不去實現該種行為,這時候這種行為我們稱作為抽象的行為,我們就需要使用抽象類。
抽象類的好處: 強制要求子類一定要實現指定的方法。
抽象類要注意的細節:
1. 如果乙個函式沒有方法體,那麼該函式必須要使用abstract修飾,把該函式修飾成抽象 的函式。。
2. 如果乙個類出現了抽象的函式,那麼該類也必須 使用abstract修飾。
3. 如果乙個非抽象類繼承了抽象類,那麼必須要把抽象類的所有抽象方法全部實現。
4. 抽象類可以存在非抽象方法,也可以存在抽象的方法.
5. 抽象類可以不存在抽象方法的。
5. 抽象類是不能建立物件的。
疑問:為什麼抽象類不能建立物件呢?
因為抽象類是存在抽象方法的,如果能讓抽象類建立物件的話,那麼使用抽象的物件呼叫抽象方法是沒有任何意義的。
6. 抽象類是存在建構函式的,其建構函式是提供給子類建立物件的時候初始化父類的屬性的。
//動物類--->抽象類
abstract class animal
//非抽象的方法
public void eat()
//移動...
public abstract void run();
}//狗 是屬於動物中一種
class dog extends animal
public void run()
}//魚 是屬於動物中一種
class fish extends animal
public void run()
}class demo3
}
執行結果
abstract不能與以下關鍵字共同修飾乙個方法:
1. abstract不能與private共同修飾乙個方法。
2. abstract 不能與static共同修飾乙個方法。
3. abstract 不能與final共同修飾乙個方法。
需求: 描述乙個圖形、圓形、 矩形三個類。不管哪種圖形都會具備計算面積
與周長的行為,但是每種圖形計算的方式不一致而已。
//圖形類
abstract class myshape
public abstract void getarea();
public abstract void getlength();
}//圓形 是屬於圖形類的一種
class circle extends myshape
public void getarea()
public void getlength()
}//矩形 屬於圖形中的 一種
class rect extends myshape
public void getarea()
public void getlength()
}class demo4
}
執行結果
java中的抽象類
抽象類是指類被修飾符abstract修飾的類。抽象類不能夠建立物件。抽象方法是只有方法名,沒有方法體,沒有具體的實現。含有抽象方法的類一定是抽象類!抽象的動物類 public abstract class animal在繼承關係中,子類繼承抽象的父類,如果在子類中沒有實現父類的抽象方法,則子類一定是...
java 中的抽象類
在自上而下的繼承層次結構中,位於上層的類更具有通用性,甚至可能更加抽象。從某種角度看,祖先類更加通用,它只包含一些最基本的成員,人們只將它作為派生其他類的基類,而不會用來建立物件。甚至,可以只給出方法的定義而不實現,由子類根據具體需求來具體實現。這種只給出方法定義而不具體實現的方法被稱為抽象方法ab...
Java中的抽象類
抽象類定義 1 語法定義 抽象類錢使用abstract關鍵字修飾,則該類為抽象類。2 應用場景 a 在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法準確知道這些子類如何實現這些方法 抽象類約束子類必須有哪些方法,但並不關注子類怎麼去實現這些方法。當多個類中出現相同功能,但是功能主體不同...