2022-7-26 第七組 抽象和接口
接口
接口時功能的集合,同樣可看作是一種數據類型,是比抽象類更為抽象的類。
接口只描述所應該具備的方法,並沒有具體實現,具體的實現由接口的實現類(相當於接口的子類)來完成。這樣將功能的定義與實現分離,優化了程序設計。
接口的格式
public interface 接口名 {
抽象方法1;
抽象方法2;
}
接口的使用
接口中的方法全是抽象方法,直接new接口來調用方法沒有意義,Java也不允許這樣干
類與接口的關係為實現關係,即類實現接口。實現的動作類似繼承,只是關鍵字不同,實現使用implements
class 類 implements 接口 {
重寫接口中方法
}
接口中成員的特點
1、接口中可以定義變量,但是變量必須有固定的修飾符修飾,public static final 所以接口中的變量也稱之為常量,其值不能改變。後面我們會講解fnal關鍵字
2、接口中可以定義方法,方法也有固定的修飾符,public abstract
3、接口不可以創建對象。
4、子類必須覆蓋掉接口中所有的抽象方法後,子類才可以實例化。否則子類是一個抽象類。
接口和類的關係
A:類與類之間:繼承關係,一個類只能直接繼承一個父類,但是支持多重繼承
B:類與接口之間:只有實現關係,一個類可以實現多個接口
C:接口與接口之間:只有繼承關係,一個接口可以繼承多個接口
匿名對象 : 沒有名字的對象
* 匿名對象的應用場景:
* 當方法只調用一次的時候可以使用匿名對象
* 可以當作參數進行傳遞,但是無法在傳參之前做其他的事情
* 注意:匿名對象可以調用成員變量並賦值,但是賦值並沒有意義
new student();
匿名實現類:
abstract
1. 抽象類概述
當編寫一個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的功能具體實現方式,那麼這些方法都有具體的方法體。
分析事物時,發現了共性內容,就出現向上抽取。會有這樣一種特殊情況,就是方法功能聲明相同,但方法功能主體不同。那麼這時也可以抽取,但只抽取方法聲明,不抽取方法主體。那麼此方法就是一個抽象方法。
2.抽象類的特點:
抽象方法只能在抽象類裏面
抽象類和抽象方法必須被abstract修飾
抽象類不能創建對象(不能實例化)
抽象類中可以有非抽象的方法
抽象類和類的關係也是繼承
一個類繼承了抽象類要麼重寫所有的抽象方法,要麼他自己是抽象類
總結:
抽象類的成員特點:
成員變量
可以有成員變量
可以有常量
成員方法
可以有抽象方法
可以有非抽象方法
構造方法
可以有構造方法的,需要對抽象類的成員變量進行初始化