簡單的說,屬性能夠描述事物的特徵,方法能夠描述事物的動作。封裝就是把同一類事物的共性(包括屬性和方法)歸到同一類中,方便使用。
封裝是指利用抽象資料型別把資料和基於資料的操作封裝起來,使其成為乙個不可分割的整體,資料隱藏在抽象資料內部,盡可能的隱藏資料細節,只保留一些介面使其與外界發生聯絡。也就是說使用者無需知道內部的資料和方法的具體實現細節,只需根據留在外部的介面進行操作就行。
如下:public class person
public void setname(string name)
public string get***()
public void set***(string ***)
public int getage()
public void setage(int age)
}簡單來說繼承就是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力。
繼承關係是傳遞的。若類c繼承類b,類b繼承類a(多繼承),那麼c同時繼承下來a和b的屬性和方法
class person
class teacher extends person
}public class show
}必要條件:方法的重寫、過載與動態連線構成多型性;
向上轉型
我定義了乙個子類cat,它繼承了animal類,那麼後者就是前者的父類。我可以通過
cat c = new cat(); 例化乙個cat的物件,這個不難理解。
但當我這樣定義時: animal a = new cat();
它表示我定義了乙個animal型別的引用,指向新建的cat型別的物件。由於cat是繼承自它的父類animal,所以animal型別的引用是可以指向cat型別的物件的。那麼這樣做有什麼意義呢?因為子類是對父類的乙個改進和擴充,所以一般子類在功能上較父類更強大,屬性較父類更獨特,定義乙個父類型別的引用指向乙個子類的物件既可以使用子類強大的功能,又可以抽取父類的共性。所以,父類引用只能呼叫父類中存在的方法和屬性,不能呼叫子類的擴充套件部分;因為父類引用指向的是堆中子類物件繼承的父類;同時,父類中的乙個方法只有在父類中定義而在子類中沒有重寫的情況下,才可以被父類型別的引用呼叫;對於父類中定義的方法,如果子類中重寫了該方法,那麼父類型別的引用將會呼叫子類中的這個方法,這就是動態連線。
指向子類的父類引用由於向上轉型了,它只能訪問父類中擁有的方法和屬性,而對於子類中存在而父類中不存在的方法,該引用是不能使用的,儘管是過載該方法。若子類重寫了父類中的某些方法,在呼叫該些方法的時候,必定是使用子類中定義的這些方法(動態連線、動態呼叫)。
物件導向三大特徵
1.繼承 什麼是繼承 繼承是一種建立新類的方式,在python中,新建的類可以繼承乙個或多個父類,父類又可稱為基類或超類,新建的類稱為派生類或子類 python中類的繼承分為 單繼承和多繼承 class parentclass1 定義父類 pass class parentclass2 定義父類 p...
物件導向三大特徵
是指將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問而是通過類提供的方法實現類內資訊的操作和訪問。可以通過j a中的訪問控制符來實現。實現復用。j a中,通過extends實現繼承 每個類只有乙個直接父類 j a.lang.object是所有類的直接 間接父類 子類獲得父類的全部屬性和方法 除...
物件導向的三大特徵
封裝 物件的資訊和內部的邏輯結構隱藏起來private 只能當前類的內部 被訪問default 包訪問許可權 protected 包一下類,其他類都可以訪問 public 所有類訪問 為每個屬性建立一對賦值和取值 繼承 在現有類的基礎上派生出新的類,新類將共享現有類的屬性和行為特徵,並且還可以在派生...