抽象類
一.實例
描述:
- 定義一個抽象類Shape绎橘,具有受保護類型的x和y屬性,以及公有的抽象方法獲得面積。
Rectangle類繼承于Shape類煤辨,在構(gòu)造方法中給父類屬性x和y初始化,并重寫父類中求面積的抽象方法木张。
Triangle類也繼承于Shape類众辨,在構(gòu)造方法中給父類屬性x和y初始化,并重寫父類中求面積的抽象方法舷礼。
Cube類繼承于Rectangle類鹃彻,獨有的屬性是height,其構(gòu)造方法需要調(diào)用父類的構(gòu)造方法完成對x和y的初始化(立方體的底面長和寬)妻献,并對height初始化蛛株;獨有的方法是求體積。
創(chuàng)建上轉(zhuǎn)型對象育拨,求矩形的面積和三角形面積谨履。
創(chuàng)建對象,求立方體的體積熬丧。
二.相關(guān)代碼
1.ShapeTest
2.Shape類
3.Rectangle類
4.Triangle類
5.Cube類
三. 注意點
1.super關(guān)鍵字的三個作用
-
訪問父類屬性
調(diào)用父類構(gòu)造方法
調(diào)用父類成員方法
2. 抽象類的說明
- 抽象類中可以有抽象方法和非抽象方法共存
如果一個類中含有抽象方法笋粟,則該類一定是抽象類
子類如果繼承抽象類,必須強制重寫父類中的抽象方法锹引!
3.final關(guān)鍵字的說明
- final修飾的變量就是常量
final修飾的類不能被繼承
final修飾的方法不能被子類重寫
4.聲明抽象方法和非抽象方法的區(qū)別:
- 抽象方法不實現(xiàn)方法體矗钟;(無花括號)
- 抽象方法實現(xiàn)方法體;(有)
接口
說明:
- 和抽象類相似嫌变,但是更嚴格
接口中只能有抽象方法
接口中不能聲明屬性
一個類可以實現(xiàn)多個接口 - 關(guān)鍵字abstruct 允許在類中創(chuàng)建沒有定義的方法——接口部分吨艇,但是沒有提供具體的實現(xiàn)。interface關(guān)鍵字將產(chǎn)生一個完全抽象的類腾啥,該類中的所有方法都是抽象的东涡。我們稱這種類為接口。把關(guān)鍵字class用interface代替倘待。
- 接口中的成員修飾符是固定的:
成員常量:public static final
成員函數(shù):public abstract
由此得出結(jié)論疮跑,接口中的成員都是公共的權(quán)限。
抽象類與接口的區(qū)別:
鏈接如下:https://blog.csdn.net/jjjjjj123321/article/details/54135413