繼承 多繼承

2021-09-26 01:58:13 字數 2441 閱讀 8091

一、繼承

1)封裝:self引數傳入的是建立的物件,self可以直接將物件帶引數傳入類中方法,這種在物件中封裝資料,對類進行了優化的方法就叫封裝。

2)當乙個繼承自另乙個累的時候,會先去子類裡面找,如果有先呼叫沒有去夫類找。

1)

class rectangle: # 矩形類

def __init__(self,length,width):

self.length = length

self.width = width

def area(self):

areas = self.length * self.width

return areas

lass square(rectangle): # 正方形類

pass

a = square()

2)class rectangle:

def__init__(self, length, width)

self.length = length

self.width = width

def getarea(self):

area = self.length * self.width

print('面積為:%s『% area)

class square(rectangle): # 正方形類

def __init__(self, length, width):

if length == width:

rectangle.__init__(self, length, width)

else:

print(』不是正方形『)

二、多繼承

1)多繼承用逗號隔開,從左往右繼承 不想繼承夫類可以重寫之後被覆蓋

1)class a:

pass

# def f(self):

# print("a")

class b:

def f(self):

print("b")

class c(a):

pass

# def f(self):

# print("c")

class d(b):

pass

# def f(self):

# print("d")

class e(c, d):多繼承用逗號隔開,從左往右繼承 不想繼承夫類可以重寫之後被覆蓋

如果用夫類的方法則:

1.夫類.方法(self)

pass

# def f(self):

# print("e")

e = e() # 此時類中的self始終指向的是e,所有方法選擇的優先順序始終從e開始判斷的

e.f() # e無--->c,c無--->a,a無--->d,d無--->b

2)class animal:

def __init__(self):

print("a構造方法")

class owner:

def __init__(self):

print("c構造方法")

class cat(owner, animal):

def __init__(self):

print("b構造方法")

kitty = cat()

class a:

# def run(self):##

# class d:

# def run(self):##

# class b:

# def eat(self):

# print("miaomiaomiao")##

# class c(d, b):

# def run(self):

# d.run(self)

# print("fly")##

# c = c()

# c.run()

class a(object):

def run(self):

class b:

def eat(self):

print("miaomiaomiao")

class c(a, b):

def run(self):

super().run() # super函式可以呼叫父類的方法,

print("fly")

c = c()

c.run()

print(c.mro()) # [, , , ]獲取全部的繼承關係

print(c.__bases__) # (, ) 檢視繼承的全部父類

print(c.__base__) # 檢視繼承的第乙個父類

繼承 多繼承

繼承 父類 基類 新內容 子類 派生類 子類繼承父類,子類繼承父類所有的成員變數和成員函式 父類有的子類都有,子類沒有的可以加 繼承方式 控制父類成員在子類中的訪問許可權 public private protected 格式 calss 子類 許可權 父類 規則 繼承方式 public 父類私有成...

繼承(單繼承 多繼承 菱形繼承 虛繼承)

一 單繼承 單繼承是一種 乙個子類只有乙個直接父類 的繼承關係。二 多繼承 多繼承是一種 乙個子類有兩個或兩個以上直接父類 的繼承關係。三 菱形繼承 菱形繼承由兩個 或以上 單繼承,乙個多繼承構成,結構如下 顯然,上例中assistant類多繼承了student和teacher兩個類,而studen...

繼承 多繼承 菱形虛擬繼承

繼承 繼承是由父類和子類 或稱之為基類與派生類 兩種角色構成,子承父業,就是說派生類會繼承基類的所有的成員,並擁有自己特有的成員。用一段 來解釋說明繼承關係 include using namespace std class base 基類 class derived public base 以共有...