java之抽象類

2021-08-27 16:09:09 字數 1869 閱讀 2129

分析事物時,發現了共性內容,就出現向上抽取。會有這樣一種特殊情況,就是方法功能宣告相同,但方法功能主體不同。那麼這時也可以抽取,但只抽取方法宣告,不抽取方法主體。那麼此方法就是乙個抽象方法。

比如我們要宣告乙個人類class,人類包含很多種,美國人和中國人。那麼人類肯定會說話,但是說的是英語還是漢語需要具體的看是那種人,因為這個人類class就可以宣告為抽象類,宣告乙個說話的抽象方法,美國人和中國人分別繼承然後重寫說話的犯法實現自己的說話方式。

抽象類的定義格式 

a:抽象方法定義的格式:

a:public abstract 返回值型別 方法名(引數);

抽象類定義的格式:

abstract class 類名 }/

定義android類,繼承開發人員類

重寫抽象方法

/

public class android extends develop}/

測試抽象類

建立他的子類的物件,使用子類的物件呼叫方法

/public class test

}抽象類特點

a:抽象類的特點

a:抽象類和抽象方法都需要被abstract修飾。抽象方法一定要定義在抽象類中。

b:抽象類不可以直接建立物件,原因:呼叫抽象方法沒有意義。

c:只有覆蓋了抽象類中所有的抽象方法後,其子類才可以建立物件。否則該子類還是乙個抽象類。

之所以繼承抽象類,更多的是在思想,是面對共性型別操作會更簡單。

abstract class a

class a2 extends a

public void func2(){}

}abstract class a3 extends a

//public abstract void func2();//func2相當於被繼承下來       

抽象類的設計思想     a:抽象類的設計思想

a:抽象類的作用:繼承的體系抽象類,強制子類重寫抽象的方法

抽象員工:

規定乙個方法,work工作

ee員工,android員工 

develop類 抽象類

abstract work();

|————-

|             |

ee            android  //是我開發的一員必須工作

work(){}       work(){}

抽象類的細節   

a:抽象類一定是個父類?

是的,因為不斷抽取而來的。

b:抽象類中是否可以不定義抽象方法?

是可以的,那這個抽象類的存在到底有什麼意義呢?不讓該類建立物件,方法可以直接讓子類去使用

(介面卡設計模式)

/抽象類,可以沒有抽象方法,可以定義帶有方法體的方法

讓子類繼承後,可以直接使用

/

public  abstract class animal

}public class cat extends animal     

public class test

}c:抽象關鍵字abstract不可以和哪些關鍵字共存? 

1:private:私有的方法子類是無法繼承到的,也不存在覆蓋,

而abstract和private一起使用修飾方法,abstract既要子類去實現這個方法,

而private修飾子類根本無法得到父類這個方法。互相矛盾。 

/抽象類,可以沒有抽象方法,可以定義帶有方法體的方法

讓子類繼承後,可以直接使用

java之抽象類

1 抽象類概念 抽象類前使用abstract關鍵字修飾,則為抽象類 2 抽象類的應用場景 a 在某些情況下,乙個父類只知道其子類應該包含某些方法,但是不能確切的知道如何實現這些方法 b 從多個具有相同特徵的類中抽象出乙個抽象類,以這個類作為子類的模板,從而避免了子類設計的隨意性 3 作用 限制規定子...

java入門之抽象類

抽象類 抽象類的作用類似模板供設計者依據他的格式來修改並建立新類,他不能事例化物件,包含乙個或多個抽象方法 用abstract修飾的方法 同樣,包含抽象方法的類必須是抽象類.抽象類用abstract修飾.抽象類只能被繼承,且繼承他的子類必須將所有父類的抽象方法全部實現.抽象方法 抽象方法用abstr...

java基礎之 抽象類

抽象類 抽象方法只有宣告,沒有實現時,該方法就是抽象方法,需要被abstract修飾,抽象方法必須定義在抽象類中,抽象類需要被abstract修飾。抽象類不可以被例項化。抽象類必須被其子類重寫後,該子類才可以例項化。否則這個子類還是抽象類。抽象類也有構造方法,用於給子類物件進行初始化 抽象類可以不定...