3.練習題3
封裝 繼承 多態
要求:
大家是如何理解單繼承的?
答:只繼承一個父類.
請寫出單繼承的格式?
class<類名>(父類名)
<語句>
請寫出一個car基類,BMW類繼承于car類,基類中有init方法(包含name,color)和run方法.
#定義一個基類
class Car(obj):
def __init__(self, name, color="黑色")
self.name = name
self.color = color
def run(self):
print("%s在馳騁----"%self.name)
#定義一個子類,繼承基類
class BMW(Car):
def setName(self, newName)
self.name = newName
如果子類中沒有定義init方法,但是要實例化一個對象,那此時會調用父類的構造方法嗎?
答:會
如果子類重寫了init方法,那么在實例化對象的時候,你覺得會調用哪個構造方法,是父類的還是子類的?
答:子類的
當子類重寫init方法,在實例化對象的時候,如果想要調用父類的init方法該怎么辦?
答:手動調用
類中的私有屬性能通過對象直接訪問嗎?
答:不能
要想訪問類中的私有屬性該怎么辦?
答:提供訪問私有屬性的方法.
基類中的私有屬性能被子類繼承嗎?
答:私有的屬性、方法,不會被子類繼承,也不能被訪問.
那么私有屬性存在的意義是什么?
答:一般情況下,私有的屬性、方法都是不對外公布的,往往用來做內部的事情,起到安全的作用.
提示:
繼承語法:class 派生類名(基類名)/基類名寫在括號里,基本類是在類定義的時候,在元組之中指明的。
4.練習題4
對self的 理解
判斷下面一段代碼的運行結果
要求:
class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
運行結果: 1--當前對象的地址
2--self.class 所指向的類
提示:
上述代碼運行的結果不唯一.
只要知道self是當前對象的地址即可.
而且要知道self.class是指向的類.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
