Python基礎 父類對子類的約束

2022-05-04 06:36:08 字數 1979 閱讀 5271

python基礎-父類對子類的約束

#

普通的類

#抽象類 是乙個開發的規範 約束它的所有子類必須實現一些和它同名的方法

#支付程式##

#支付寶支付 url連線,告訴你引數什麼格式##

蘋果支付

#class payment: # 抽象類

#def pay(self,money):

#'''只要你見到了專案中有這種類,你要知道你的子類中必須實現和pay同名的方法'''

#raise notimplementederror('請在子類中重寫同名pay方法')##

class alipay(payment):

#def __init__(self,name):

#self.name = name

#def pay(self,money):

#dic =

## 想辦法呼叫支付寶支付 url連線 把dic傳過去

#print('%s通過支付寶支付%s錢成功'%(self.name,money))##

class wechat(payment):

#def __init__(self,name):

#self.name = name

#def pay(self,money):

#dic = ##

###def __init__(self,name):

#self.name = name

#def pay(self,money): #如果這裡的方法方法名不是pay,在後面的呼叫就會報錯,使用這樣的方法實現 約束

#dic =

## 想辦法呼叫蘋果支付 url連線 把dic傳過去

#print('%s通過蘋果支付%s錢成功' % (self.name, money))

#aw = wechat('alex')

#aw.pay(400)

#aa = alipay('alex')

#aa.pay(400)

#歸一化設計

#def pay(name,price,kind):

#if kind == 'wechat':

#obj = wechat(name)

#elif kind == 'alipay':

#obj = alipay(name)##

#obj.pay(price)##

pay('alex',400,'wechat')

#pay('alex',400,'alipay')##

##實現抽象類的另一種方式,約束力強,依賴abc模組

#from abc import abcmeta,abstractmethod

#class payment(metaclass=abcmeta):

#@abstractmethod

#def pay(self,money):

#'''只要你見到了專案中有這種類,你要知道你的子類中必須實現和pay同名的方法'''

#raise notimplementederror('請在子類中重寫同名pay方法')##

class alipay(payment):

#def __init__(self,name):

#self.name = name

#def pay(self,money):

#dic =

## 想辦法呼叫支付寶支付 url連線 把dic傳過去

#print('%s通過支付寶支付%s錢成功'%(self.name,money))##

class wechat(payment):

#def __init__(self,name):

#self.name = name

#def pay(self,money):

#dic = ##

##wechat('alex')

#抽象類我已經寫好了

#要求你根據已經寫好的payment實現wechat\alipay

詳述父類構造方法對子類影響

首先說明,當乙個類中沒有定義構造方法,則預設有乙個隱式的無參構造方法,其結構如下 public 類名 super super 用於呼叫父類構造方法,它必須位於構造方法方法體的第一行有效 位置 this 用於呼叫本類構造方法,它也必須位於構造方法方法體的第一行有效 位置 當定義了乙個有參構造方法,便沒...

父類構造方法對子類構造方法影響

1 乙個類中如果沒有定義構造方法,預設有乙個無參構造方法,其結構如下 public 類名 其中super 關鍵字可以省略不寫,缺省會呼叫父類無參構造方法。需要注意的是,如果乙個類中定義了乙個有參構造方法,則無參構造方法不再贈送,需要自行編寫。2 this 引數列表 呼叫本類構造方法,但必須放在有效 ...

父類構造方法對子類構造方法影響

乙個類中如果沒有構造方法,預設有乙個無參構造方法,其結構為 public 類名 建立乙個父類與子類 父類 public class father 子類 public class sonextends father public class test 則此時輸出結果為 父類構造方法 子類構造方法。若構...