Java 抽象類與介面的使用

2021-09-02 11:14:53 字數 3532 閱讀 1814

抽象類的概念:

抽象類就是在普通類的基礎上擴充一些抽象方法,所謂的抽象方法指的是值宣告而未實現的方法(沒有方法體)

所有的抽象方法要求使用abstract關鍵字來定義,並且抽象等待所在的類也一定要用abstract關鍵字定義,表示抽象類

abstract class person

public void setname(string name)

//{}裡面的**為方法體,所有抽象方法不包含方法體

public abstract void getperson();//抽象方法

}

抽象類中包含抽象方法,而抽象方法不包含方法體,即沒有具體實現因此抽象類不能夠產生例項化物件

對於抽象類的使用原則

a.所有的抽象類必須有子類

b.抽象類的子類必須覆寫抽象類的所有抽象方法

c.抽象類的物件可以通過物件多型性利用子類為其實例化

d.private 與 abstract 不能同時使用

abstract class person

public void setname(string name)

//{}裡面的**為方法體,所有抽象方法不包含方法體

public abstract void getperson();//抽象方法

}class student extends person

}public class test

}

abstract class person

public string getname()

public void setname(string name)

public abstract void getinfo();//抽象方法

}class student extends person

@override

public void getinfo() //子類覆寫方法空實現

}public class test

}

物件例項化操作的核心步驟:

類載入 -> 類物件的開闢 -> 類物件屬性的初始化(構造方法)

2、抽象類中允許不定義抽象方法,但是此時抽象方法仍然無法直接建立例項化物件

abstract class person

}public class test

}

3、抽象類一定不能使用final宣告,因為final宣告的類不允許有子類,抽象類又必須有子類;抽象方法也不能用private定義,因為抽象方法必須被覆寫

4、抽象類分為內部抽象類和外部抽象類。內部抽象類中可以使用static定義來描述外部抽象類

abstract class person

}class child extends person

class a extends student

}}

介面的定義與使用

抽象類與普通類相比最大的特點就是約定了子類的實現要求,但是抽象類存在單繼承侷限,如果要約定子類的實現要求且避免單繼承就可以使用介面

介面的基本概念

定義:介面就是乙個抽象方法和全域性常量的集合,用inte***ce關鍵字定義

inte***ce imes
子類要想實現介面,就必須使用implements關鍵字來實現介面。

同時,乙個子類可以實現多個介面,對於介面的子類必須覆寫介面的全部抽象方法,隨後利用子類的向上轉型通過例項化子類得到介面的例項化物件

子類實現介面 & 父介面相互轉換

inte***ce imes

inte***ce inew

class mess implements imes,inew

@override

public string getnews()

}public class test

}

介面使用限制

介面只允許使用public許可權(不管是屬性還是方法,其許可權都是public)

介面的兩種定義

//完整格式:

inte***ce imes

//簡化格式:

inte***ce imes

阿里編碼規約:介面中的方法和屬性不加任何修飾符號,public也不要加,保持**的簡潔性

當乙個子類即需要實現介面又需要繼承類時,需先使用extends繼承乙個抽象類,而後使用implements實現多個介面

//子類繼承抽象類和實現介面

abstract class news

class message extends news implements imes

@override

public void getnews()

}public class test

}

乙個抽象類可以使用implements實現多個介面

inte***ce imes

abstract class news implements imes

class message extends news

@override

public void getnews()

}

此關係屬於三層繼承

class message extends news implements imes

乙個介面可以使用extends繼承多個父介面

inte***ce a

inte***ce b

inte***ce c extends a,b

class impl implements c

@override

public void printb()

@override

public void printc()

}

介面可以定義一系列的內部結構,包括:內部普通類、內部介面。其中使用static定義的內部介面就相當於乙個外部介面

//使用static定義的內部介面

inte***ce a

}class impl implements a.b

}

介面能力的應用:定義標準

介面在實際開發中有三大核心應用環境

a.定義操作標準

b.表示能力

c.在分布式開發之中暴露遠端服務方法

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...

java抽象類與介面的區別

含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class abstract class 裡的方法不必是抽象的,抽象類中定義抽象方法必須放在具體子類中實現,所以呀,不能有抽象的構造方法或抽象的靜態方法,...

JAVA抽象類與介面的區別

抽象類和介面的區別 抽象類是乙個模板,類的模板,而介面是乙個標準。序號區別點 抽象類介面1定義 包含抽象方法的類就是抽象類 抽象方法和全域性常量的集合2組成 構造方法,抽象方法,普通方法 常量和抽象方法 常量,變數3使用 子類繼承抽象類 extends 子類實現介面 implements 關鍵字 a...