萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> Java中抽象類與接口的區別

Java中抽象類與接口的區別

   接口和抽象類有好多相同點和類似點,很多人有過這樣的疑問:為什麼有的地方必須使用接口而不是抽象類,而在另一些地方,又必須使用抽象類而不是接口呢?或者說,在考慮Java類的一般化問題時,很多人會在接口和抽象類之間猶豫不決,甚至隨便選擇一種。

  理解抽象類

  abstract class和interface在Java語言中都是用來進行抽象類(本文 中的抽象類並非從abstract class翻譯而來,它表示的是一個抽象體,而abstract class為Java語言中用於定義抽象類的一種方法, 請讀者注意區分)定義的,那麼什麼是抽象類,使用抽象類能為我們帶來什麼好處呢?

  抽象類:抽象類是一種特殊的基類,裡面除包含一些基本的屬性和方法之外,還能包含一些只聲明但沒有實現的方法,用abstract去聲明

例如:

Java中抽象類與接口的區別 三聯

  接口:接口是一種更加抽象的類型,裡面聲明的方法全部公開給實現者去實現,並不關心具體細節 關鍵字是interface

  綜上所看 可以看出抽象類和接口的主要區別有:

  1.抽象類可以有自己的方法,但接口的方法只有聲明

  2.抽象類的抽象方法使用abstract聲明

  其它需要注意的有:

  1.一個類只能繼承一個實現類,但是可以實現多個接口

  2.當一個抽象類和一個接口有公共的屬性時,如果一個類同時實現這個抽象類和接口 則編譯不會通過。

  接口:

  一種高度抽象的“抽象類”,使用interface關鍵字聲明

  下面定義一個Usb接口:

  public interface Usb {

  public void start();

  public void end();

  }

  接口中沒有構造方法

  接口和抽象類一樣,不能用於實例化

  接口中不能定義變量,方法不准有方法體,方法默認為public,接口中方法和抽象方法不准有private修飾

  只能繼承接口,支持多繼承(接口之間用逗號隔開)

  類實現接口,使用關鍵字implements:

  1.必須實現這個接口的所有方法,除非實現類是抽象類

  2.一個類可以實現多個接口

copyright © 萬盛學電腦網 all rights reserved