抽象類
一.理解抽象類
? 思維:假如我想定義一個Shape(圖形類)類,我在這個類中寫了一個draw()方法,但是這個方法是不能用來描述圖形形狀的(不能有方法體),因為我只要對他進行了準確描述,那他的形狀就定死了。
? 所以,如果我們想要定義一個形狀如:三角形——》寫一個三角形類,三角形也是圖形的一種是吧,所以我們就可以繼承Shape類,并一定要重寫父類中的方法(如果你不重寫的話不就相當與白繼承了一個類嗎?父類的方法中什么也沒寫呀),通過重寫父類方法獲得一個你心目中的“三角形”。這個Shape類就是抽象類,他的使用方法也是如此。
二.抽象類的語法
? 在Java中,一個類如果被abstract修飾稱為抽象類,抽象類中被abstract修飾的方法稱為抽象方法,該方法不能有方法體,是必須要被子類重寫的,否則會報錯;
三.抽象類的特性
?1. 抽象類不能直接實例化對象

?2. 抽象方法不能是 private 的
?3. 抽象方法不能被final和static修飾,因為抽象方法要被子類重寫
?4. 抽象類必須被繼承,并且繼承后子類要重寫父類中的抽象方法,否則子類也是抽象類,必須要使用 abstract 修飾
? ?4.1如:
? 4.2若Main類也使用abstract修飾,那么后面有類繼承了Main類的話要么還是使用abstract修飾,要么就重寫Abstract和Mian這兩個類的抽象方法,依次類推...
5.
5.總結:抽象類的作用
?接口
接口可以理解為是比抽象類更抽象的東西。
一.接口的概念
接口的例子在生活中到處都是:如筆記本上的USB口,電源插座等。、
二.語法規則
1.1接口特性
1.接口中定義的成員變量是默認被public static final 修飾的,所以我們為了保持整潔可以不寫public static final。
2.接口中的方法被默認修飾為public abstract,因此可以省略不寫。
3.如果接口中的方法被default修飾,那么可以有具體的代碼實現。
4.如果接口中的方法被static修飾,那么它也可以有具體的實現。
3.接口中除被default和static修飾方法外都要被重寫(除非子類被abstract修飾)否則就報錯。
2.1.1繼承接口
1.子類使用“implements”關鍵字繼承接口。如:例一
2.我們知道子類只能繼承一個父類,但是一個子類卻可以繼承多個接口。如:例一
3.接口和接口之間可以使用“extends”拓展。如:例二
例一:
例二:
三.實戰接口