Java抽象類: 抽象類特點 :抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變數、成員方法和構造方法的訪問方式和普通類一樣。 由於抽象類不能實例化對象,所以抽象類必須被extends [抽象類]方式 繼承才能被使用。 抽象類表示的是一種繼承關係。 (總結就是:抽象類裡面設計跟普通類一樣, ...
Java抽象類:
抽象類特點:抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變數、成員方法和構造方法的訪問方式和普通類一樣。
由於抽象類不能實例化對象,所以抽象類必須被extends [抽象類]方式 繼承才能被使用。
抽象類表示的是一種繼承關係。
(總結就是:抽象類裡面設計跟普通類一樣,但就是不能用來實例化對象,所以需要被繼承類 extends [抽象類] 繼承來使用)
創建方式:
public abstract class a{
......可以是有變數方法還有構造方法等等.....
}
//繼承
public class b extends a{
}
java介面:
介面特點:介面並不是類,編寫介面的方式和類很相似,但是它們屬於不同的概念。 類描述對象的屬性和方法。介面則包含類要實現的方法。 (通常在我們要定義某些行為(即方法)的時候考慮才去定義介面)。介面支持多繼承。
介面無法被實例化,但是可以被 implements [介面] 方式來實現。
介面中所有的方法必須是抽象方法(因為介面及其方法都是隱式的,所以abstract可以省略)。
介面的實現類必須實現介面內所有方法,否則就必須聲明為抽象類。(參數名還有方法返回類型不可更改)。
介面沒有構造方法。
(總結:介面不是類只是寫法像而已,它的方法都為抽象方法,方法裡面不能寫具體內容,必須在implements [介面] 後實現介面內所有方法,且方法類型和參數都不能更改)
創建方式:
interface a extends [其他的介面名] {
// 聲明變數
// 抽象方法
}
public class b implements [c,d...]{
//每個抽象方法的實現
}
//當然如果要使用到介面里的常量直接 介面.變數名 就可以取值了,因為介面里的變數只能是常量嘛
抽象類和介面的區別:
- 抽象類中的方法可以有方法體,就是能實現方法的具體功能,但是介面中的方法不行。
- 抽象類中的成員變數可以是各種類型的,而介面中的成員變數只能是 public static final 類型的。
- 介面中不能含有靜態代碼塊以及靜態方法(用 static 修飾的方法),而抽象類是可以有靜態代碼塊和靜態方法。
- 一個類只能繼承一個抽象類,而一個類卻可以實現多個介面。