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: