物件導向 總 四

2021-08-26 12:14:51 字數 2147 閱讀 2113

1:多型是什麼,前提是什麼?

事物的多種形態

2:多型中成員訪問的特點?

成員變數

成員方法

靜態方法

3:多型的好處及弊端?

4:什麼是向上轉型?什麼是向下轉型?

5:多型練習  

6:抽象類概述及其特點?

7:抽象類成員特點?

8:抽象類練習?

9:抽象類的小問題

a:乙個類如果沒有抽象方法,可不可以定義為抽象類?如果可以,有什麼意義?

b:abstract不能和哪些關鍵字共存

10:介面的概述及其特點?

11:介面的成員特點?

12:介面的練習?

13:抽象類和介面的區別?

14:示例

貓狗示例,加入跳高的額外功能

老師和學生示例,加入抽菸的額外功能

14:示例(根據上面的貓狗示例,完成下面的汽車示例)

利用物件導向的思想,結合貓狗的示例,仔細分析下面的描述,實現需求!

描述:汽車都具有跑的功能,普通的奧迪車也不例外,但是高階的奧迪車除了具有跑的功能外,還具有自動泊車和無人駕駛的功能!

需求:定義普通奧迪車,高階奧迪車,實現描述中的功能並測試

以下開發步驟,僅供參考:

(1)編寫乙個抽象類car

(a)包含三個屬性brand(品牌)、color(顏色)、price(**)

(b)提供空參有參構造,set和get方法

(c)定義乙個抽象方法run();//車行駛的方法

(2)定義乙個普通的奧迪汽車類,audicar

(a)繼承car

(b)重寫run()方法,方法中列印一句話,要求列印汽車的品牌、顏色、**

(3)定義兩個介面

(a)無人駕駛介面,名稱為"nopersondriving",包含乙個抽象方法nopersondrive();//無人駕駛方法

(b)自動泊車功能介面,名稱為"自動泊車功能",包含乙個抽象方法autostopcar();//自動泊車方法

(4)定義高階奧迪車類audisupercar

(a)繼承audicar

(b)實現無人駕駛介面和自動泊車介面

(5)定義測試類car_polymorphic

(a)建立普通的奧迪車,並測試

(b)建立高階奧迪車,並測試

public class car_polymorphic 

}abstract class car

public car(string brand,string color,int price)

public void setbrand(string brand)

public string getbrand()

public void setcolor(string color)

public string getcolor()

public void setprice(int price)

public int getprice()

//車的行駛方法

public abstract void run();}/*

*普通audi車

*/class audicar extends car

public audicar(string brand,string color,int price)

public void run()

}/**

* 無人駕駛介面

* @author jx

* */

inte***ce nopersondriving

/** * 自動泊車功能

* @author jx

* */

inte***ce autostopcar

/**高階奧迪車

*/class audisupercar extends audicar implements nopersondriving,autostopcar

public audisupercar(string brand,string color,int price)

public void nopersondrive()

public void autostopcar()

public void run()

}

物件導向(四)

super 關鍵字 父類的 this 關鍵字 什麼什麼的 代表本類物件的 哪個物件呼叫然後就代表哪個物件。this 1.子類建構函式,缺省會呼叫父類空引數的建構函式 肯定會呼叫,除非你呼叫了別的建構函式 final final 關鍵字 最終的 最後的 特點 修飾類,類不可以被繼承 2.修飾成員函式,...

物件導向程式設計 四

主要說一說 this吧!兩個以上的構造方法當他們的方法體有重複的 的時候,我們可以使用 this 關鍵字呼叫前乙個構造方法,從而省略大量的 如這樣 this 但是有一點需要記住,那就是在寫著行 的時候,其一定要位於構造方法中的首行.this 可以呼叫 本類中的屬性,方法 和 構造方法.歸結一點 th...

Python物件導向(四)

如果在子類中需要父類的構造方法就需要顯示的呼叫父類的構造方法,或者不重寫父類的構造方法。詳細說明可檢視 python 子類繼承父類建構函式說明。在呼叫基類的方法時,需要加上基類的類名字首,且需要帶上 self 引數變數。區別在於類中呼叫普通函式時並不需要帶上 self 引數 python 總是首先查...