關於物件導向思想,抽象類和介面,多型等的解釋

2021-09-19 16:19:08 字數 1674 閱讀 5082

一、如何解釋物件導向的思想

答:物件導向程式設計的基本思想是,用類來描述實體的抽象型別,將現實中的事務抽象為物件,把物件賦予相應的狀態和行為,通過對訊息的響應完成一定的任務。而物件都具有下面兩個共性:1.具有一定的的狀態和特性2.每個物件都有特定的操作。

如下邊簡單**:

public

class

people

public

static

void

main

(string[

] args)

}

二、物件導向的四大特徵是什麼?

答:1,抽象性

子類繼承父類的特徵和行為。子類可以有父類的方法,屬性(非private)。子類也可以對父類進行擴充套件,也可以重寫父類的方法。

2,封裝性

封裝就是把過程和資料報圍起來,對資料的訪問只能通過特定的介面.如私有變數,用set,get方法獲取。

3,繼承性

子類繼承父類的特徵和行為。子類可以有父類的方法,屬性(非private)。子類也可以對父類進行擴充套件,也可以重寫父類的方法。

super關鍵字:通過super實現對父類成員的訪問,用來引用當前物件的父類,通過super顯示的呼叫父類的有參構造。

(類與類中常用的關係:a part of…一部分

繼承:a kind of… 一種)

4,多型性(下邊單獨解釋)

三、解釋靜態繫結和動態繫結的區別

答: 靜態繫結:編譯器 static方法 普通方法用的都是靜態繫結

動態繫結:執行期 final,private方法用的是動態繫結 動態繫結機制:引用–>物件頭–>方法表(派生類重寫的方法的位址)

四、什麼時候需要把類設計成抽象類?為什麼?

答:不需要被例項化的類,把基類設計成抽象類,基類只保留所有派生類的公共屬性

基類:不是為了描述實體抽象型別而存在的

把所有的派生類共有的屬性提取出來,放到基類裡面,派生類從該基類繼承,就直接擁有了相應的屬性;給所有派生類保留公共的抽象介面(函式),讓派生類去重寫介面方法,實現自己特有的操作。

五、解釋什麼是多型?

答: 用基類的引用,引用不同的派生類物件,呼叫同名覆蓋方法,基類引用,引用那個派生類物件,就呼叫那個派生類物件的方法

六、解釋抽象類和介面的區別

答::1. 應用場景的區別:抽象類的方法是派生類公共的方法,而有的派生類不能實現這種方法,這時就需要介面來實現

抽象類可以有構造方法,介面中不能有構造方法。

抽象類中可以有普通成員變數,介面中沒有普通成員變數。

抽象類中可以包含非抽象普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的方法。

抽象類中的抽象方法的訪問許可權可以是 public、protected 和(預設型別,介面中的抽象方法只能是 public 型別的,並且預設即為 public abstract 型別。

抽象類中可以包含靜態方法,在 jdk1.8 之前介面中不能不包含靜態方法,jdk1.8 以後可以包含。

抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問許可權可以是任意的,但介面中定義的變數只能是 public static final 型別的,並且預設即為 public static final 型別。

乙個類可以實現多個介面,用逗號隔開,但只能繼承乙個抽象類,介面不可以實現介面,但可以繼承介面,並且可以繼承多個介面,用逗號隔開。

物件導向程式設計思想 介面和抽象類

介面抽象類 是否可以被例項化否 否是否可以寫抽象方法是 是是否可以寫普通方法否 是是否可以寫 static 方法是 是是否可以寫 default 方法是 否是否可以寫屬性是 是訪問修飾符都為 public 可以自定義 抽象類描述了 is a 的關係,表示乙個類是什麼,可以解決 復用的問題。典型的場景...

物件導向 介面類 抽象類

python 沒有介面這個概念 介面類,抽象類 制定乙個規範.介面類,抽象類 python中就是一樣的 1,歸一化設計.2,制定乙個規範,凡是繼承我類的類,必須有我規定的方法.第一版class alipay def init self,money self.money money defpay se...

初探物件導向 抽象類和介面

接觸物件導向也有一段時間了,可是理解一直特別地淺。要用的時候才知道無從下手。最近又將物件導向相關的書籍看了看,一些概念比如 封裝 繼承和多型有了一些認識,但是還有一些就讓我焦頭爛額了,比如 委託。這裡我整理了一些關於抽象類和介面的知識,其中以乙個大家都非常熟悉的例子進行講解 動物 現實世界中貓和狗都...