按需求手寫封裝 繼承 多型和介面案例

2021-10-07 03:53:48 字數 3350 閱讀 5442

有很多小主資訊,如何手寫乙個物件導向案例,那麼本文就按乙個需求案例陳述如何使用封裝、繼承、多型以及介面實現該功能。

有乙個圈子,屬於運動圈子。桌球運動員張飛、今年25歲、性別男,每天要到體育館打卡進行鍛鍊,在鍛鍊的時候還愛唱歌。而桌球教練張繼科、今年32歲、性別男,到了體育館要給桌球運動員進行授課,也要考察學員情況。

籃球運動員白峰、今年26歲、性別女,同樣他也要在體育館內進行室內鍛鍊,在鍛鍊的時候愛聽**,鍛鍊完還要學習文化課課程。而籃球教練姚明、今年35歲、性別男,也要在體育館內給籃球球運動員進行授課,也要考察學員情況,學員鍛鍊完後和學員們一起學習文化課課程。

定義乙個抽象類:人類human/person成員屬性有名字、年齡、性別,成員方法就是到達體院館;

定義乙個類運動員類:player繼承人類human屬性,成員方法是在館內開展鍛鍊;

定義乙個類教練類:coach繼承人類human屬性,成員方法是在館內開展授課;

定義乙個介面:study,成員方法(抽象)表示學員鍛鍊完後和學員們一起學習文化課課程;

定義乙個桌球運動員類:pingpong繼承player,成員方法是愛唱歌;

定義乙個籃球運動員類:basketball繼承player,介面實現學習文化課課程,成員方法是愛聽**;

定義乙個桌球教練類:pingpongcoach繼承coach,成員方法是考察桌球運動鍛鍊情況;

定義乙個籃球教練類:basketballcoach繼承coach,介面實現學習文化課課程,成員方法是考察籃球球運動鍛鍊情況。

應用private,實現內部封裝一些特有的屬性,其他類不能隨便改變。

//抽象類—human(person)

public abstract class

person

public

person

(string name, string gander, int gae)

public string getname()

public

void

setname

(string name)

public string getgander()

public

void

setgander

(string gander)

public int getgae()

public

void

setgae

(int gae)

public abstract void

get();

}

//運動員類

public

class

player

extends

person

public

player

(string name, string gander, int gae)

public

void

get(

)public

void

take()

}

//教練類

public

class

coach

extends

person

public

coach

(string name, string gander, int gae)

public

void

get(

)public

void

talk()

}

//學習類_介面

inte***ce

study

//桌球運動員類

public

class

pingpong

extends

player

public

pingpong

(string name, string gander, int gae)

public

void

sing()

}

//籃球運動員類

public

class

basketball

extends

player

implements

study

public

basketball

(string name, string gander, int gae)

public

void

listen()

public

void

cultural()

}

//桌球教練類

public

class

pingpongcoach

extends

coach

public

pingpongcoach

(string name, string gander, int gae)

public

void

inspectp()

}

//籃球教練類

public

class

basketballcoach

extends

coach

implements

study

public

basketballcoach

(string name, string gander, int gae)

public

void

inspectb()

public

void

cultural()

}

//測試類

子類繼承父類,只能繼承父類非私有的成員,被private修飾的成員,外界都不能訪問;

子類不能繼承父類的構造方法,但是可以通過乙個關鍵字super來訪問;

子類的成員不能

封裝 繼承和多型

你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 全新的ka...

封裝 繼承和多型

我們在設計程式時,講究六個字,高內聚,低耦合 封裝就是我們對資料進行隱藏,多用於來封裝屬性,封裝方法較少。記住封裝的核心,就是私有 private 令屬性為私有後我們呼叫不了類裡面的屬性,所以我們設定一些get方法和set方法來操作私有的屬性 public int getage public voi...

抽象 多型 繼承 封裝 介面 單例

物件導向的特徵有哪些方面 抽象 繼承 封裝 多型 一.介面 1.類只能繼承乙個類,但可以實現多個介面 2.介面可以繼承多個介面 3.介面可以放常量,不能放變數 二.多型 a.多型性是指允許不同類的物件對同一訊息作出響應。1.重寫 2.覆蓋 1.1 完全改寫 原有的邏輯要不得 1.2 後面增加 建立型...