抽象類與介面,對於其中的一些規定如果不是很清楚則會常常造成程式編譯不通過的現象。所以,特意整理一下關於抽象與介面的注意地方。
我們需要知道的:
抽象類是不能生成物件的
抽象類中的方法可以是抽象方法(沒有方法體),也可以是具體方法(有具體方法體)
必須為抽象父類中的所有的抽象方法進行具體定義重寫
對於抽象父類中的非抽象方法可以不用重寫
介面中所有方法均是抽象方法,且預設修飾符是public
普通類繼承抽象類時,重寫的方法的修飾符可以不是public
抽象類實現介面可以選擇實現某種方法,不用全部實現
小例子來具體實現:
abstract
class
ab; //抽象類中可以定義非抽象方法,但是一樣要是具體方法;
}class
ccextends
ab void k() //必須為抽象父類中的所有的抽象方法進行具體定義重寫
//對於抽象父類中的非抽象方法可以不用重寫
}class
ddextends
cc //對於普通類的繼承,選擇方法重寫即可,不用全部重寫
}inte***ce
in 介面內應全都是抽象方法,不允許具體方法的出現
//介面內的方法的修飾符預設為public,可以省略不寫,但是實現介面時方法要加上public
}class
s******ments
in; //普通類繼承抽象類時,重寫的方法的修飾符可以不是public
public
void m(){}; //普通類要實現介面中的所有方法
}abstract
class
stimplements
in} //抽象類實現介面可以選擇實現某種方法,不用全部實現
public
class
demo
}
輸出結果:
k()
g()1
java抽象類與介面的區別抽象類與介面的特性是什麼
介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...
java中抽象類與介面的區別
抽象類與介面的區別 1.抽象類中可以含有普通方法和變數,而介面中只能含有抽象方法 public abstract修飾 和常量 public final static修飾 不能含有任何實現了的方法。2.抽象類中由構造器,而介面中沒有構造器。3.抽象類只能是單繼承,多實現。而介面是多繼承其他介面,但是不...
java中抽象類與介面的區別
抽象類和介面都包含類可以由子類繼承實現的成員,但抽象類是對根源的抽象,而介面上是對動作的抽象。抽象類的功能要遠超過介面,那為什麼還要使用介面呢?這主要是由於定義抽象類的代價高 因為每個類只能繼承乙個類,在這個類中,必須繼承或者編寫出其子類的所有共性 因此,雖然介面在功能上會弱化很多,但它只是針對乙個...