物件導向3

2021-10-25 11:55:01 字數 4663 閱讀 1059

/*

封裝:具體表現: 屬性/方法使用private許可權

使用後外部無法直接訪問,就要在它的類中提供相應的方法,

通過該方法實現外部對本類中私有屬性/方法的操作/訪問

*/public

class

person

}public string getname()

}public

class

test

}

/**

* 繼承

* 從已有類中派生出新類,新類可擁有父類的所有非私有的屬性

* 是一種 is-a的關係

* */

public

class

animal

public

animal

(string n,

int a)

public

void

eat(

)public

void

setname

(string name)

public string getname()

public

intgetage()

public

void

setage

(int age)

}public

class

dogextends

animal

public string gettype()

public

void

settype

(string type)

public

void

study()

}public

class

test

}

/*

類之間的關係 : 關聯 依賴

1 關聯:乙個類作為另乙個類的屬性型別存在

是 has-a 的關性

分 一對一關聯 一對多關聯

2 依賴:b類作為另乙個類的引數在方法中被使用

是 use-a 的關性

*/public

class

mobile

public string getname()

public

void

setname

(string name)

public

double

getprice()

public

void

setprice

(double price)}/*

類之間的關係 : 關聯 依賴

1 關聯:乙個類作為另乙個類的屬性型別存在

是 has-a 的關性

分 一對一關聯 一對多關聯

2 依賴:b類作為另乙個類的引數在方法中被使用

是 use-a 的關性

*/public

class

person

public string getname()

public

void

setname

(string name)

public

intgetage()

public

void

setage

(int age)

public mobile getmobile()

public

void

setmobile

(mobile mobile)

}

/**

* 多型:

* 1 有繼承

* 2 有方法的重寫

* 3 父類引用指向子類物件

*/public

abstract

class

animal

public string getname()

public

void

setname

(string name)

public

intgetage()

public

void

setage

(int age)

}public

class

catextends

animal

}public

class

dogextends

animal

public

static

void

sleep()

public string gettype()

public

void

settype

(string type)

public

void

study()

}public

class

test}/*

方法引數多型性的好處:提高**的擴充套件性

方法的形式引數型別是父類型別,而傳遞的實際引數可以是任意子類的物件

*/public

class

test2

public

void

feedanimal

(animal animal)

/* 非多型的實現

*//*public static void main(string args)

public void feeddog(dog d)

public void feedcat(cat c)*/}/*

多型帶來的問題 : 父類型別不能訪問子類特有方法

解決辦法 : 向下轉型

*/public

class

test3

else

}}

/**

* final關鍵字:

* 1 修飾的方法不能被繼承

* 2 修飾的屬性要賦值 直接賦值(所有物件都一樣,每次建立物件都會賦值乙份 ; 加上static後所有物件共享且值一樣)

* 在構造方法中賦值(當每個物件都想有自己的值時使用)

* 3 修飾的方法不能被重寫

*/public

class

father

/*public father(int num)*/

public

final

void

speak()

public

void

makemoney

(final

int k)

public

static

void

main

(string[

] args)

}//public class son extends father */

}

抽象類:即類中有未實現功能的方法

1 不能例項化物件,類的成員變數 成員方法 構造方法和普通類的訪問方式一樣

2 含有抽象方法的類一定是抽象類,抽象類可以有普通方法

3 一般作為基類

4 乙個類如果要繼承乙個抽象類: 1 重寫抽象類中所有方法

2 將當前類也宣告為抽象類

5 靜態方法 構造方法不能用abstract修飾抽象方法: 1 只有宣告,沒有實現

2 必須用abstract修飾

3 無方法體

public

abstract

class

animal

//抽象方法

public

abstract

void

eat();

//普通方法

public

void

sleep()

public

static

void

main

(string[

] args)

}// 乙個類如果要繼承乙個抽象類: 1 重寫抽象類中所有方法 || 2 將當前類也宣告為抽象類

// public abstract class cat extends animal

}

介面 : 1 是一種特殊的抽象類

​ 2 使用inte***ce關鍵字

​ 3 介面中成員變數預設為是靜態常量

​ 4 可定義 抽象方法 預設方法 靜態方法

​ 5 實現介面( implements): 將當前類宣告為抽象類 或 重寫介面中的抽象方法

​ 6 介面中預設方法通過子類物件呼叫 7 介面中的靜態方法通過介面名訪問

public

inte***ce

animal

//靜態方法

static

void

drink()

}//實現介面 使用implements關鍵字 1 將當前類宣告為抽象類 2 重寫介面中的抽象方法

public

class

dogimplements

animal

}public

class

test

}

物件導向3

前邊八篇部落格寫了從面向過程的方法來開發一款軟體的各種方法,和過程。包括了計畫,需求分析,設計,程式功能的實現,測試,維護還有介面設計的多項。但是,隨著技術的發展,隨著it業的發展,物件導向的技術,已經發展的越來越廣泛。這篇部落格,我就給大家概要介紹一下面向技術相關技術!首先看一下要總結知識的幾大項...

物件導向3

1 json的全稱就是個 object 物件 2 物件導向的封裝函式叫做工廠方式 方便建立多個物件導向 3 物件的引用 基本型別的引用 單純只是值的複製 物件型別的引用 位址的傳遞引用 只要在程式中賦值,必然要開闢新的位址。比較 基本型別只要值相同true 物件型別 值和引用都相同 var arr1...

物件導向3

抽象類 抽象類是對一類事物特徵行為的抽象,可以包含抽象方法。在python3中可以使用abc模組,該模組中有乙個元類abcmeta和修飾器 abstractmethod。抽象類不能被直接例項化 多重繼承 python支援多重繼承,即1個類可以繼承多個父類。語法為 class name parent ...