程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python中面向對象的三大特征,封裝、繼承、多態(代碼實例說明)

編輯:Python
1、封裝:將數據的屬性和行為(方法)包裝到類對象中,在方法內部對屬性進行操作,在類對象的外部調用方法,這樣無需關心方法內部的具體實現細節,從而隔離了復雜度
2、繼承:提高代碼的復用性
.如果一個類沒有繼承任何類,默認繼承object
.python支持多繼承
.定義子類時,必須在起構造函數中調用父類的構造函數
3、多態——多種形態,指的是即便不知道一個變量所引用的對象到底是什麼類型,仍然可以通過這個變量調用方法,在運行過程中根據變量所引用的對象類型,動態決定調用那個對象中的方法

1、面向對象_封裝

# 面向對象的三大特征:封裝、繼承、多態
# 封裝:將數據的屬性和行為(方法)包裝到類對象中,在方法內部對屬性進行操作,在類對象的外部調用方法,
# 這樣無需關心方法內部的具體實現細節,從而隔離了復雜度
class person:
def __init__(self,age):
# self.name=name
self.age=age
def start(self):
print('苦逼的人類又要開始打工的一天了')
per=person('加油加油')
per.start()
print(per.age)
# # 在python中沒有專門的修飾符用於屬性的私有,如果改屬性不希望在類對象中被外部訪問,前面使用兩個‘_’即可
class Student:
def __init__(self,name,age):
self.name=name
self.__age=age # 不想被類的外部調用,前面加__
def show(self): # 定義類
print('姓名:',self.name,'年齡:',self.__age)
stu=Student('俞敏洪',30) # 創建對象
stu.show()
# 在類的外部使用name,age
# print(stu.name)
# print(stu.age) # 不希望被使用
# print(stu._Student__age)

2、面向對象_繼承

# 面向對象的三大特征:封裝、繼承、多態
# 繼承:提高代碼的復用性
# .如果一個類沒有繼承任何類,默認繼承object
# .python支持多繼承
# .定義子類時,必須在起構造函數中調用父類的構造函數
# 定義一個person父類
class Person():
def __init__(self,name,age,height,weight):
self.name=name
self.age=age
self.height=height
self.weight=weight
def info(self):
print(self.name,self.age,self.height,self.weight)
# 再定義一個student類
class Student(Person):
def __init__(self,name,age,height,weight,stu_no):
super().__init__(name,age,height,weight) # 使用super()調用父類init裡面的屬性
self.stu_no=stu_no
# 再定義一個教師類
class Teacher(Person):
def __init__(self,name,age,height,weight,TeacherOfYear):
super().__init__(name,age,height,weight)
self.t_yes=TeacherOfYear
# 創建學生類和教師類的對象
stu=Student('俞敏洪',30,'175cm','60kg',1001)
Teacher=Teacher('馬雲',30,'175cm','60kg',10)
stu.info()
Teacher.info()
# python中還可以多繼承
class A(object):
pass
class B(object):
pass
class C(A,B): # 多繼承
pass

1、面向對象_多態

# 面向對象的三大特征:封裝、繼承、多態
# 多態——多種形態,指的是即便不知道一個變量所引用的對象到底是什麼類型,仍然可以通過這個變量調用方法,
# 在運行過程中根據變量所引用的對象類型,動態決定調用那個對象中的方法
#
class animal(object):
def eat(self):
print('所有動物都要吃東西')
class dog(animal):
def eat(self):
print('狗會吃骨頭')
class pig(animal):
def eat(self):
print('豬會吃甜點')
class person(object):
def eat(self):
print('人什麼都要吃!')
def fun(person): # 定義一個函數
person.eat()
# def fun(animal): # 多態,只要這個方法裡面有共同的屬性,和他的父類沒有關系
# animal.eat()
# def fun(object):
# object.eat()
fun(dog())
fun(pig())
fun(person())

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved