抽象類:
public abstract class Uncle {
private String name ;
private int age;
//抽象方法
public abstract void faHongbao();
}
子類一:
public class UncleOne extends Uncle {
public void faHongbao(){
System.out.println("大舅發(fā)紅包,還送煙");
}
}
子類二:
public class UncleTwo extends Uncle {
public void faHongbao() {
System.out.println("二舅發(fā)紅包,還送煙");
}
}
### 關(guān)鍵點(diǎn):**
**語法: 1.抽象類的前面需要abstract關(guān)鍵字聲明**
**2.抽象類至少有一個(gè)抽象方法**
##### 3.抽象方法需要abstract關(guān)鍵字修飾
子類必須要實(shí)現(xiàn)抽象類中的抽象方法
**接口 interface**
public interface Uncle {
//在接口中聲明方法
public void faHongbao();
}
子類一:implements父類的名字
public class UncleOne implements Uncle{
@Override
public void faHongbao(){
System.out.println("大舅發(fā)紅包");
}
}
子類二:
public class UncleTwo implements Uncle {
@Override
public void faHongbao(){
System.out.println("二舅送煙");
}
}
1.關(guān)鍵字interface
2.接口中的方法只需聲明,不能有方法體,方法只能是共有的。
3.子類需要實(shí)現(xiàn)接口中的所有方法,實(shí)現(xiàn)的語法是implement接口名
## 例外:
1.可以寫公有的常量。
2.可以寫默認(rèn)的方法default修飾
public interface Uncle {
//公有的常量
public String chenhu = "舅舅";
//在接口中聲明方法
public void faHongbao();
//不管那個(gè)舅舅都需要照顧老人,為了避免重復(fù),寫在接口中,default
public default void zhaogulaoren(){
System.out.println("每個(gè)舅舅都需要照顧老人");
}
}
多重實(shí)現(xiàn):
//多繼承 (多重繼承) 多實(shí)現(xiàn) (多重實(shí)現(xiàn))
public class UncleTwo implements Uncle , Father {
@Override
public void faHongbao(){
System.out.println("二舅送煙");
System.out.println(chenhu);
}
@Override
public void yangjia(){
System.out.println("二舅也是一位父親,需要養(yǎng)家");
}
}
多繼承(多重繼承)只有接口才可以一次繼承多個(gè)接口(多重繼承),類一次只可以繼承一個(gè)父類
// 多繼承(多重繼承) 只有接口才可以多重繼承
public interface Temp extends Uncle , GrandFather{
}
public class UncleThree implements Temp {
@Override
public void yangjia(){
}
@Override
public void faHongbao() {
}
@Override
public void zhaogulaoren(){
}
}
案例:
// 爺爺類 抽象的 有一個(gè)釣魚的抽象方法沒有實(shí)現(xiàn)
public abstract class Yeye {
public abstract void diaoyu();
}
// 爸爸類 也是抽象的 從爺爺繼承來的抽象方法可以不實(shí)現(xiàn),也可以實(shí)現(xiàn)
public abstract class Baba extends Yeye {
public abstract void tangtou();
}
// 叔叔類,標(biāo)準(zhǔn)的實(shí)體類,不是抽象類 繼承的父類中所有的抽象方法必須全部實(shí)現(xiàn)
public class Shushu extends Yeye {
@Override
public void diaoyu(){
System.out.println("靠譜的叔叔替爺爺完成了釣魚");
}
}
// 孫子類 標(biāo)準(zhǔn)實(shí)體類不是抽象類,需要實(shí)現(xiàn)全部父類中累計(jì)沒有實(shí)現(xiàn)的所有抽象方法
public class Sunzi extends Baba {
@Override
public void tangtou(){
System.out.println("替爸爸完成燙頭");
}
@Override
public void diaoyu(){
System.out.println("替爺爺完成釣魚");
}
}
第七章:抽象類和接口
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Dart 語法學(xué)習(xí)目錄 第一節(jié): Dart 語法了解,認(rèn)識(shí)變量,常量,數(shù)據(jù)類型第二節(jié): Dart 操作符(運(yùn)算符)...
- 接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類可以繼承具體類。抽象類中可以有靜態(tài)的main方...
- **一、Android 抽象類、抽象方法** 抽象方法:類的成員方法,只有聲明,沒有實(shí)現(xiàn),把實(shí)現(xiàn)交給子類。 抽象類...
- 抽象類: 如果一個(gè)類含有抽象方法,則稱這個(gè)類為抽象類,抽象類必須在類前用 abstract 關(guān)鍵字修飾。因?yàn)槌橄箢?..
- 接口可以繼承接口,而且支持多重繼承。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類可繼承具體類也可以繼承抽象類。