抽象類的應用場景:
我們在描述一類事物的時候,發現該種事物確實存在著某種行為,但是這種行為目前是不具體的,那麼我們可以抽取這種行為 的宣告,但是不去實現該種行為,這時候這種行為我們稱作為抽象的行為,我們就需要使用抽象類。
抽象類的好處: 強制要求子類一定要實現指定的方法。
抽象類要注意的細節:
如果乙個函式沒有方法體,那麼該函式必須要使用abstract修飾,把該函式修飾成抽象的函式。
如果乙個類出現了抽象的函式,那麼該類也必須使用abstract修飾。
如果乙個非抽象類繼承了抽象類,那麼必須要把抽象類的所有抽象方法全部實現。
抽象類可以存在非抽象方法,也可以存在抽象的方法.
抽象類可以不存在抽象方法的。
抽象類是不能建立物件的。
抽象類是存在建構函式的,其建構函式是提供給子類建立物件的時候初始化父類的屬性的。
抽象類不能建立物件的原因:
因為抽象類是存在抽象方法的,如果能讓抽象類建立物件的話,那麼使用抽象的物件呼叫抽象方法是沒有任何意義的。
//動物類--->抽象類
abstract
class
animal
//非抽象的方法
public
void
eat(
)//移動...
public
abstract
void
run();
}//狗 是屬於動物中一種
class
dogextends
animal
public
void
run()}
//魚是屬於動物中一種
class
fish
extends
animal
public
void
run()}
class
demo
}
abstract不能與以下關鍵字共同修飾乙個方法:
abstract不能與private共同修飾乙個方法。
private修飾的只能在本類中使用,
abstract方法是用來被子類進行重寫的,有矛盾
所有不能共存.
abstract不能與static共同修飾乙個方法。
對於abstract修飾的方法沒有具體的方法實現,所有不能直接呼叫,
也就是說不可以與static共存。
abstract不能與final共同修飾乙個方法。
final:它的作用 修飾類代表不可以繼承 修飾方法不可重寫
abstract修飾類就是用來被繼承的,修飾方法就是用來被重寫的。
描述乙個圖形、圓形、 矩形三個類。不管哪種圖形都會具備計算面積與周長的行為,但是每種圖形計算的方式不一致。
//圖形類
abstract
class
myshape
public
abstract
void
getarea()
;public
abstract
void
getlength()
;}//圓形 是屬於圖形類的一種
class
circle
extends
myshape
public
void
getarea()
public
void
getlength()
}class
circle
extends
myshape()
public
void
getarea()
public
void
getlength()
}//矩形屬於圖形中的一種
class
rect
extends
myshape
public
void
getarea()
public
void
getlength()
}class
demo4
}
注意:乙個類最多只能有乙個直接的父類,但是可以有多個間接的父類。
class
grandpa
class
father
extends
grandpa
class
child
extends
father
class
demo
}
1.介面的作用
程式的解耦。(低耦合)
定義約束規範。
拓展功能。
2.介面的定義格式
inte***ce 介面名
3.介面要注意的事項
介面是乙個特殊的類。
介面的成員變數預設的修飾符為: public static final 。那麼也就是說介面中的成員變數都是常量。
介面中的方法都是抽象的方法,預設的修飾符為: public abstract。
介面不能建立物件。
介面是沒有構造方法的。
介面是給類去實現使用的,非抽象類實現乙個介面的時候,必須要把介面中所有方法全部實現。
4.實現介面的格式
class 類名 implements 介面名
demo:
inte***ce
aclass
demo
implements
a//實現介面中的方法
public
void
print()
}
demo:
//普通的鉛筆類
class
pencil
public
void
write()
}//橡皮介面
inte***ce
eraser
//帶橡皮的鉛筆
class
pencilwitheraser
extends
pencil
implements
eraser
public
void
remove()
}class
demo
}
1.類與介面之間的關係:實現關係。
類與介面要注意的事項:
非抽象類實現乙個介面時,必須要把介面中所有方法全部實現。
抽象類實現乙個介面時,可以實現也可以不實現介面中的方法。
乙個類可以實現多個介面 。
2.介面與介面之間關係: 繼承關係。
介面與介面之間要注意事項:
乙個介面是可以繼承多個介面的。
介面和抽象類
介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...
抽象類和介面
抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...
抽象類和介面
1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...