抽象類與介面在設計時各有什麼好處?
介面不能執行任何的方法,而抽象類可以。
類可以執行許多介面,但只有乙個父類。 這個也有人說用介面可以實現多重繼承。
介面不是類分級結構的一部分。而沒有聯絡的類可以執行相同的介面。
具體說說:
介面是物件屬性和方法的描述(但不包括他們具體實現),比如int32型別實現了iconvertible介面,就說明int32具有iconvertible介面所描述的todouble()方法。但iconvertible並沒有給出實現todouble()的內容,需要由int32型別自己實現。
介面用於實現多型。比如int32,int64和single型別都實現了iconvertible藉口,那麼就說明他們一定都具有todouble()方法。所以,定義乙個變數是iconvertible型別:
iconvertible c;
然後,無論是給c賦任何實現iconvertible型別的變數,我都能夠保證,c至少有乙個todouble()方法可用,而不用關心c具體是什麼型別的變數。如
int i = 3; //int32
long j = 6l; //int64
float k = 4f; //single
則 c = i;
c.todouble();
c = j;
c.todouble();
c = k;
c.todouble();
都不會發生錯誤。
實現介面的類可以顯式實現該介面的成員。當顯式實現某成員時,不能通過類例項訪問該成員,而只能通過該介面的例項訪問該成員。
介面的應用大多數是在design pattern時才用到。
抽象類,從多個物件中抽出來的「共性」,而他的後代,既有共性、又有特性。例如:「圖形」是抽象的,沒有形狀,由點線組成;正方形、圓形是他的派生,可以是物件。
java抽象類與介面的區別抽象類與介面的特性是什麼
介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...
抽象類與介面的區別
c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...
抽象類與介面的區別
c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...