/*
封裝:具體表現: 屬性/方法使用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 ...