顯示呼叫基類的構造方法

2021-08-20 14:15:41 字數 1146 閱讀 6865

def __init__(self,......):

......

例項: 乙個物件裡面可以包含許多物件,可以層層呼叫。

student類繼承human類的特徵,並增加了乙個score新屬性

doctor類繼承student類的特徵,並增加乙個grad新屬性。

繼承父類的方法通過super()函式來實現。

super(student,self).__init__(name,age)

super(doctor,self).__init__(name, age,score)

class human:

def __init__(self,name,age):

self.name=name

self.age=age

def infos(self):

print('姓名:',self.name,"年齡",self.age)

class student(human):

def __init__(self,name,age,score):

super(student,self).__init__(name,age)

# self.name=name

# self.age=age

self.score=score

def infos(self):

print('姓名:',self.name,"年齡",self.age,"得分是:",self.score,)

class doctor(student):

def __init__(self,n,a,s,grad): #grad是學位

super(doctor,self).__init__(n,a,s)

self.grad=grad

def infos(self):

print('姓名:',self.name,"年齡",self.age,"得分是:",self.score,"學位是:",self.grad)

h1=human('張三',20)

h1.infos()

s1=student('李四',30,100)

s1.infos()

d1=doctor('王五',40,100,'碩士')

d1.infos()

在基類建構函式中呼叫虛擬方法

在c builder中,vcl風格物件的執行時型別,是派生類的型別,並在呼叫基類建構函式期間不變。因此,如果基類構造函式呼叫乙個虛擬的方法,當派生類過載它時,派生類的方法將被呼叫,基類的不被呼叫。如果這個虛擬方法依賴於派生類建構函式體或初始化列表中的任何東西,方法仍在派生類建構函式之前被呼叫。例如c...

c 呼叫基類的建構函式(模板類)

如下 include include include using namespace std template class base template base base t n template void base tostring template derive derive t n base ...

呼叫父類的構造方法

public class newgou 形式引數的問題 引用型別 形式引數的改變直接影響實際引數的改變 基本型別 形式引數的改變不影響實際引數的改變 如果你看了乙個方法裡的形式引數是乙個類 型別 引用型別 這裡其實需要的是該類的物件.形式引數是引用型別.呼叫的時候,把main方法中的a位址傳遞到了這...