抽象類
使用abstract class來定義抽象類
抽象方法
Abstract 關(guān)鍵字同樣可以用來聲明抽象方法探遵,抽象方法只包含一個方法名,而沒有方法體妓柜。
抽象方法沒有定義箱季,方法名后面直接跟一個分號烙如,而不是花括號唬渗。
?????如果一個類包含抽象方法醒陆,那么該類必須是抽象類核无。
?????任何子類必須重寫父類的抽象方法辖所,或者聲明自身為抽象類阀湿。
抽象類總結(jié)規(guī)定
1. 抽象類不能被實例化(初學(xué)者很容易犯的錯)伤塌,如果被實例化缴允,就會報錯最疆,編譯無法通過杯巨。只有抽象類的非抽象子類可以創(chuàng)建對象。
2. 抽象類中不一定包含抽象方法努酸,但是有抽象方法的類必定是抽象類服爷。
3. 抽象類中的抽象方法只是聲明,不包含方法體获诈,就是不給出方法的具體實現(xiàn)也就是方法的具體功能仍源。
4. 構(gòu)造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法舔涎。
5. 抽象類的子類必須給出抽象類中的抽象方法的具體實現(xiàn)笼踩,除非該子類也是抽象類。
Java 接口
接口并不是類亡嫌,編寫接口的方式和類很相似嚎于,但是它們屬于不同的概念。類描述對象的屬性和方法挟冠。接口則包含類要實現(xiàn)的方法于购。
除非實現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法
接口文件保存在 .java 結(jié)尾的文件中知染,文件名使用接口名肋僧。
接口沒有構(gòu)造方法。
接口是隱式抽象的,當(dāng)聲明一個接口的時候嫌吠,不必使用abstract關(guān)鍵字伪窖。
接口中每一個方法也是隱式抽象的,聲明時同樣不需要abstract關(guān)鍵字居兆。
接口中的方法都是公有的。
接口的聲明
[可見度] interface 接口名稱 [extends 其他的接口名] {
? ? ? ? // 聲明變量
? ? ? ? // 抽象方法
}
接口的實現(xiàn)
public class MammalInt implements Animal