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修飾

   抽象類不能創建對象(不能實例化)

  抽象類中可以有非抽象的方法

  抽象類和類的關係也是繼承

  一個類繼承了抽象類要麼重寫所有的抽象方法,要麼他自己是抽象類

 

 

 

 

 

 

 

 總結:

   

抽象類的成員特點:

   成員變量

       可以有成員變量

       可以有常量

   成員方法

       可以有抽象方法

       可以有非抽象方法

   構造方法

       可以有構造方法的,需要對抽象類的成員變量進行初始化

 

 

 

 

 

Tags: