一、繼承:
乙個類可以派生出子類,在這個父類裡定義的屬性、方法自動被子類繼承
1、py2, 經典類是按照深度優先來繼承的,新式類是按照廣度優先來繼承的
2、py3, 經典類與新式類都是按照廣度優先進行繼承的
3、**的復合使用:
class b(object):
definit(self):
class a(object):
definit(self):
self.b = b()
4、例項
# # author : xuefeng
# # 經典類
# # class people:
# # 新式類
# class people(object):
# def __init__(self, name, age):
# self.name = name
# self.age = age
# self.friends =
# # def sleep(self):
# print("%s is sleeping!" % self.name)
# # def eat(self):
# print("%s is eating!" % self.name)
# #
# class relation(object):
# def make_fri(self, obj):
# print("%s is ****** friends with %s..." % (self.name, obj.name))
# #
# class man(people, relation):
# def __init__(self, name, age, money):
# # people.__init__(self, name, age)
# super(man, self).__init__(name, age) # super更加方便一些,新式類的寫法
# self.money = money
# # def sleep(self):
# people.sleep(self)
# print("this man is sleeping!")
# # def piao(self):
# print("%s is piaoing..." % self.name)
# #
# class woman(people, relation): # 從左往右執行,尋找建構函式
# def give_bir(self):
# print("%s is giving a birth to a baby!" % self.name)
# #
# jim = man("jim", 22, 15000)
# # jim.eat()
# # jim.piao()
# # jim.sleep()
# # mary = woman("mary", 23)
# # mary.give_bir()
# # jim.make_fri(mary)
# print(jim.friends[0].name)
# 多繼承
# 只繼承乙個構成函式
classa(
object):
def__init__
(self)
:print
("a"
)class
b(a)
:def
__init__
(self)
:print
("b"
)class
c(a)
:def
__init__
(self)
:print
("c"
)class
d(b, c)
:pass
# def __init__(self):
# print("a")
d = d(
)
物件導向特性 繼承
1 子類繼承父類的方法和字段 class computer 子類,膝上型電腦類 class notecomputer extends computer 2 不需要父類的字段和方法,那麼可以採用重寫的方法覆蓋掉父類的方法。class computer 子類,膝上型電腦類 class notecompu...
Python 物件導向的特性2 繼承
物件導向的三大特性 1 封裝 根據職責將屬性和方法封裝到乙個抽象的類中,然後類建立乙個實實在在的物件,有了物件以後,就可以訪問到物件內部的屬性,或者讓物件來呼叫乙個已經封裝好的方法。2 繼承 實現 的重用,相同的 不需要重寫。3 多型 不同的子類物件呼叫相同的父類方法,產生不同的執行結果。以繼承和重...
python 物件導向三大特性 繼承
一 什麼是繼承 繼承是一種建立新類的方式,在python中,新建的類可以繼承乙個或者多個父類,父類又可以稱為基類活超類,新建的類稱為派生類或子類。簡單來說就是 子類可以繼承父類的方法和屬性。python中類的繼承分為 單繼承和多繼承 class parentclass1 定義父類 pass clas...