国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python面向對象類的繼承實例詳解

2020-02-15 22:04:29
字體:
來源:轉載
供稿:網友

本文實例講述了Python面向對象類的繼承。分享給大家供大家參考,具體如下:

一、概述

面向對象編程 (OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。

通過繼承創建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”,繼承的過程,就是從一般到特殊的過程。在某些 OOP 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。

繼承概念的實現方式主要有2類:實現繼承、接口繼承。

實現繼承是指使用基類的屬性和方法而無需額外編碼的能力。

接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力(子類重構爹類方法)。

在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關系應該是“屬于”關系。例如,Employee 是一個人,Manager 也是一個人,因此這兩個類都可以繼承 Person 類。但是 Leg 類卻不能繼承 Person 類,因為腿并不是一個人。

OO開發范式大致為:劃分對象→抽象類→將類組織成為層次化結構(繼承和合成) →用類與實例進行設計和實現幾個階段。

二、類的繼承

2.1 繼承的定義

class Person(object):  # 定義一個父類  def talk(self):  # 父類中的方法    print("person is talking....")class Chinese(Person):  # 定義一個子類, 繼承Person類  def walk(self):   # 在子類中定義其自身的方法    print('is walking...')c = Chinese()c.talk()   # 調用繼承的Person類的方法c.walk()   # 調用本身的方法

輸出:

person is talking....
is walking...

2.2 構造函數的繼承

如果我們要給實例 c 傳參,我們就要使用到構造函數,那么構造函數該如何繼承,同時子類中又如何定義自己的屬性?

繼承類的構造方法:

1.經典類的寫法: 父類名稱.__init__(self,參數1,參數2,...)

2. 新式類的寫法:super(子類,self).__init__(參數1,參數2,....)

class Person(object):  def __init__(self, name, age):    self.name = name    self.age = age    self.weight = 'weight'  def talk(self):    print("person is talking....")class Chinese(Person):  def __init__(self, name, age, language): # 先繼承,在重構    Person.__init__(self, name, age) #繼承父類的構造方法,也可以寫成:super(Chinese,self).__init__(name,age)    self.language = language  # 定義類的本身屬性  def walk(self):    print('is walking...')class American(Person):  passc = Chinese('bigberg', 22, 'Chinese')

如果我們只是簡單的在子類Chinese中定義一個構造函數,其實就是在重構。這樣子類就不能繼承父類的屬性了。所以我們在定義子類的構造函數時,要先繼承再構造,這樣我們也能獲取父類的屬性了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新乡县| 仁化县| 崇左市| 区。| 台山市| 南昌市| 焉耆| 龙门县| 平武县| 屯留县| 布尔津县| 常宁市| 壤塘县| 吴桥县| 建德市| 浦江县| 宁波市| 运城市| 柳林县| 衡阳县| 栾城县| 永胜县| 舞钢市| 闸北区| 水城县| 高雄县| 富宁县| 基隆市| 扶余县| 阜新市| 含山县| 民县| 石台县| 建平县| 工布江达县| 德保县| 五大连池市| 红河县| 丰原市| 民丰县| 正阳县|