日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象的三大特性之继承

發布時間:2025/7/25 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象的三大特性之继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 面向對象的三大特性之繼承# 當類之間有顯著不同,并且較小的類是較大的類所需要的組件時,用組合比較好 (如機器人) # 當類之間有很多相同的功能,提取這些共同的功能做成基類,用繼承比較好 (動物——貓) # 繼承同時有兩種含義:1,繼承基類的方法,并且做出自己的改變或擴展(代碼重用),這種意義并不大,因為它使子類和基類出現強耦合 #           2,聲明某個子類兼容于某基類。定義一個接口類,子類繼承接口類,并實現接口中定義的方法 #            接口繼承只是接口類規定了子類必須實現的方法,但是接口類里不去實現,子類繼承后,在子類中再寫具體實現的方法 #            可以導入abc模塊,并使用裝飾器@abc.abstractmethod,限定子類必須要定義接口類中的方法import abc # 導入abc模塊class AllFile(metaclass=abc.ABCMeta): # 定義接口類@abc.abstractmethod # 使用裝飾器,限定子類中必須要定義下面的方法def read(self): # 僅有方法名稱,并沒有具體內容,僅是為了規范子類pass@abc.abstractmethoddef write(self):passclass Disk(AllFile): # 子類Disk繼承AllFile接口類def read(self): # 必須定義接口提供的兩個方法,否則實例化時會報錯print('Disk read') # 方法的具體實現代碼def write(self):print('Disk write')class Cdrom(AllFile):def read(self):print('Disk read')def write(self):print('Disk write')d = Disk()# 新式類的繼承順序(廣度優先) print(Disk.__mro__) # 顯示新式類的繼承順序方法1 print(Disk.mro()) # 顯示新式類的繼承順序方法2# 子類中調用父類的方法 class Vehicle:country = 'China'def __init__(self, name, speed, load, power):self.name = nameself.speed = speedself.load = loadself.power = powerdef run(self):print('父類方法')class Subway(Vehicle):def __init__(self, name, speed, load, power, line):super().__init__(name, speed, load, power) # 通過super()調用父類的方法self.line = line # 子類def show_info(self):print(self.name, self.speed, self.load, self.power, self.line)def run(self):super().run()print('子類方法')line13 = Subway('北京地鐵', '10km/s', 10000, '', 13) line13.show_info() line13.run()

?

轉載于:https://www.cnblogs.com/dangrui0725/p/9457877.html

總結

以上是生活随笔為你收集整理的面向对象的三大特性之继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。