有了抽象類,為什么還要接口?兩個具體區(qū)別

xiaoxiao77
2016-01-15
2 回答
舉報
0/150
提交
取消
2016-01-15
舉報
2016-01-15
Java中類不允許多繼承,接口可以實現(xiàn)多繼承
2016-01-15
1、抽象類里面可以有非抽象方法,但接口里只能有抽象方法?
聲明方法的存在而不去實現(xiàn)它的類被叫做抽像類(abstract?class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。
不能創(chuàng)建 abstract?類的實例,然而可以創(chuàng)建一個變量,其類型是一個抽像類,并讓它指向具體子類的一個實例。
不能有抽像構(gòu)造函數(shù)或抽像靜態(tài)方法。abstract?類的子類為它們父類中的所有抽像方法提供實現(xiàn),否則它們也是抽像類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。
2、接口(interface)是抽像類的變體。
在接口中,所有方法都是抽像的。
多繼承性可通過實現(xiàn)這樣的接口而獲得。
接口中的所有方法都是抽像的,沒有一個有程序體。
接口只可以定義 static?final 成員變量。
接口的實現(xiàn)與抽象類相似,當(dāng)類實現(xiàn)接口時,它需要實現(xiàn)(即將程序體給予)所有這種接口的方法。