java基礎 抽象類

2021-08-19 07:19:17 字數 1080 閱讀 1500

一、定義

在類中宣告乙個方法,這個方法沒有實現體,是乙個「空」方法,這樣的方法就叫抽象方法,使用修飾符「abstract」,當乙個類有抽象方法的時候,該類就必須宣告為抽象類。

二、例項

1、含有抽象方法的類,必須定義為抽象類    

為animal增加乙個抽象方法eat(),並且把animal宣告為abstract的。cat,dog是animal的子類,繼承了animal的屬性和方法。但是各自的吃的東西不一樣,所以繼承animal以後,這些子類必須提供不一樣的eat()實現。

2、可以沒有抽象方法的抽象類

animal類可以在不提供抽象方法的前提下,宣告為抽象類,一旦某個類被宣告為抽象類,就不能被直接例項化。

三、抽象類和介面的區別

區別1:子類只能繼承乙個抽象類,不能繼承多個,子類可以實現多個介面

區別2:抽象類可以定義public、protected、package、private;靜態和非靜態屬性,final和非final屬性;但是介面中宣告的屬性,只能是public,靜態,final的,即便沒有顯式的宣告。

注意:抽象類和介面都可以有實現方法,介面中的實體方法,叫做預設方法。

Java基礎 抽象類

抽象類 目前存在的問題 1.動物類的run方法描述的不正確。2.沒有強制要子類一定要重寫run方法 抽象類的應用場景 我們在描述一類事物的時候,發現這種事物確實存在某種行為,但是這種行為目前是不具體的,那麼我們可以抽取這種行為的宣告,但是不去實現這種行為,這種時候這種行為我們稱作為抽象行為,我們就需...

JAVA基礎 抽象類

1.子類必須覆蓋抽象類的全部抽象方法,否則子類還是抽象類。2.抽象方法必須定義在抽象類中,該類也必須被abstract修飾。3.抽象類不可以被例項化。4.抽象類中可以有構造方法,用於給子類初始化。5.抽象類中可以定義非抽象方法,但是很少見。6.抽象關鍵字不可以與那些關鍵字共存?private pri...

Java 基礎 抽象類

抽象方法 總結在回顧設計模式時,發現用到類很多抽象類,寫一篇部落格記錄學習。public abstract class employee public double computepay public void mailcheck override public string tostring pu...