日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象三大核心特点,封装、继承和多态

發布時間:2023/11/29 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象三大核心特点,封装、继承和多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

封裝

封裝其實是一種思想,將事物狀態和功能裝進一個容器,那么這個容器在python中就是類,由這個類產生的對象都擁有類的屬性和功能

在面向對象的思想中,推崇將具有某些共同特征的事物歸為一類,那么這些事物就可以看做是這個類的具象化對象,但是允許個體擁有不同的特征

例如:你和我都是人,都具有人的基本功能,那么我們就是人的對象,我和你的名字可以不一樣,性別可以不一樣,但本質上我們都是人類

在前面我們說到,類不是實實在在存在的,是一系列擁有相似屬性和功能的事物的抽離。那么在定義類和類的屬性、功能上實際就是把這些屬性和功能封裝進類里面,抽離相似屬性和功能并把它們放到類里,這種思想就是封裝

class Animal:

  dog = “”

  human = “”

  ...

  def eat(self):

    print("enting")

  def sleep(self):

    print("sleeping")

動物類封裝進了dog、human等等屬性,封裝了eat、sleep等功能,這些都屬于Animal類共有的一些屬性和功能

?

繼承

?

繼承的概念源于對現實事物的模擬,在人類的概念中,人類下面還有女人、男人、小孩、大人等細分概念,那么女人就是人類的擴展,人類概念就是女人概念的爸爸,女人概念除了擁有人類的所有屬性和功能外還多了一個屬性就是性別,那么女人類和人類就有非常多的相同屬性和功能,回到編程中,這些高度相似或者相同的屬性和功能其實就是重復的代碼,繼承的出現就是為了避免重復寫大量代碼描述兩個屬性和功能高度重合的類。

例:

class human:

  legs = 4

  ear = 2

  def? eat (self):

    pass

class women:

  legs =? 4

  ear = 2

  sex = “”

  def eat (self):

    pass

由human 和 women 類可以看出,他們有相同的屬性legs、ear和相同的功能eat(),如果在代碼里這么寫代碼將非常冗余,面向對象語言幾乎都有繼承的思想,如果用繼承來表示上面的代碼將會是:

class human:

  legs = 4

  ear = 2

  def? eat?(self):

    pass

?

class women(human):

  sex = ""

這樣的話human就是繼承women,human就是women的父類,women就是human的子類,women既有自己的屬性sex,也擁有父類的所有屬性和功能。

具體實現和原理見:

多繼承

在python中允許多繼承關系,一個類可以同時繼承多個類,這樣它就擁有所有父類的屬性和方法
在python2中,沒有繼承任何類的類被稱為經典類,默認不繼承任何類

在python3中,所有的類默認繼承object,這種類被稱為新式類

菱形繼承

a繼承b,c,b,c由同時繼承d,那么繼承關系就形成閉環,此時a擁有的功能和屬性最多,d擁有的功能和屬性最少

菱形繼承會帶來屬性查找順序的問題,比如a的屬性name是繼承而來的,但不知道是b,c,d哪一個的,此時就會有查找順序,在python2和python中是不一樣的

python2中,是以深度查找為基本原則,即a->b->d->c,一直查找到繼承關系最深的那一層

python3中,是以廣度查找為基本原則的,即a->b->c->d,先將分支都查找完,最后找最深的那一層

?

多態

由同一父類派生的不同子類對象都可以作為參數傳遞給某個函數去執行,并產生不同的結果,這種形態叫多態。

例:

class A:

  def __init__(self,name):

    self.name = name

class B(A):

  pass

def pri_name(obj):

  print(obj.name)

b1 = B("egon")

b2 = B("owen")

pri_name(b1)

pri_name(b2)

打印結果:

egon

owen

?

鴨子類型

兩個不相干的兩個類的對象可以將自身作為參數傳給同一個函數去調用執行,這樣的就是鴨子類型,在python里十分推崇鴨子類型,一個生物不知道它是不是鴨子,但它只要長得像鴨子,水里游泳像鴨子,那就認為它是鴨子

class A:

  def __init__(self,name):

    self.name = name

    self.age = 18

class B:

  def __init__(self,name):

    self.name = name

    self.sex = "female"

def pri_name(obj):

  print(obj.name)

b1 = B("egon")

b2 = B("owen")

pri_name(b1)

pri_name(b2)

打印結果:

egon

owen

?

轉載于:https://www.cnblogs.com/dongxixi/p/10759364.html

總結

以上是生活随笔為你收集整理的面向对象三大核心特点,封装、继承和多态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 好av在线| 成人黄色视屏 | 日本三级中文字幕 | 成年人网站黄 | 四虎啪啪 | 久久精品色妇熟妇丰满人妻 | 日本女v片| 亚洲色图狠狠干 | 日本在线播放一区 | 久久久av一区二区三区 | 国产又爽又黄免费视频 | 久久精品国产精品亚洲色婷婷 | 国产精品视频h | 强伦人妻一区二区三区视频18 | 久久久久久久久久久久 | 超碰97成人 | 男女作爱免费网站 | 日韩美女激情视频 | 特级新鲜大片片 | 欧美怡红院一区二区三区 | 欧美乱大交xxxxx春色视频 | 亚洲wwww| 日本泡妞视频 | 欧美日韩片 | 中文字幕乱码人妻无码久久 | 日韩一级av毛片 | 亚洲色欧美另类 | 另类激情 | 亚洲欧美高清视频 | 国产口爆吞精一区二区 | 少妇与公做了夜伦理69 | av导航大全| 国内久久久| 91这里只有精品 | av网址免费在线观看 | 成人福利网站在线观看 | 一级黄色片免费播放 | 2020亚洲天堂 | 国产精品xxx | 偷拍青青草 | 久久久亚洲欧洲 | 久久久久久久久久av | 午夜男人的天堂 | 伦在线 | 中国国产黄色片 | 草av| 国产精品无码粉嫩小泬 | 天天色天天插 | 青草国产视频 | 国产又爽又黄的视频 | 中文字幕一区二区三区精彩视频 | 麻豆精品一区 | 澳门黄色录像 | 久久国产成人精品国产成人亚洲 | 国产午夜一区二区 | 麻豆传谋在线观看免费mv | 懂爱av| 一二三不卡 | 免费在线看黄色片 | 先锋影音av资源在线观看 | 深田咏美av在线 | 日本免费网址 | 亚洲国产精品无码观看久久 | 双性懵懂美人被强制调教 | 99久久香蕉 | 欧美 日本 国产 | 免费动漫av| 亚洲av乱码久久精品蜜桃 | 日韩久操 | 激情导航 | 免费播放片大片 | 免费看麻豆 | 91视频国产一区 | 午夜激情影视 | 国产欧美精品一区二区色综合 | 美女久久久久 | 欧美日韩一区二区三区 | 欧洲色视频 | 姑娘第5集在线观看免费好剧 | 日韩一区二区三区电影 | 欧美日日 | 成全世界免费高清观看 | www.日本在线观看 | 一区二区三区四区视频 | 亚洲欧美日本在线 | 91嫩草欧美久久久九九九 | 国产传媒一级片 | 亚洲欧美视频一区二区 | 中文字幕一区二区精品 | 久久爱综合网 | 国产老熟女伦老熟妇露脸 | 91情侣视频 | 强侵犯の奶水授乳羞羞漫虐 | 韩国av免费在线观看 | 肉体粗喘娇吟国产91 | 中文字幕高清在线免费播放 | youjizz在线视频| 欧美久久一区二区三区 | 欧洲做受高潮欧美裸体艺术 |