面向对象的三大特性
-
抽象(有一些可能不算)
对于某个元素,忽略不相干事务,将关键元素提取,由代码表述。抽象包括数据抽象、过程抽象。
数据抽象 : 事务的特征,对象的元素。如:鸟的翅膀、羽毛颜色。
过程抽象: 事务的动作,对象的方法。如:鸟的饮食、飞行方式。
-
封装
封装就是把过程和数据包围起来,对数据的访问只能通过已定义的界面。(如get、set)
封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
-
多态
多态指的是一种事务具备多种形态。程序中定义的引用变量所指向的具体类型和通过变量调用的方法在编程时是不定的,而是在运行期间才得以确定,也就是引用变量到底指向那个类的实例对象。
如:
class Bird():
def speak(self):
print("咕咕咕")
class Owl(Bird):
def speak(self):
print("呱呱呱")
def fly(self):
print("aaaa")
class Niao(Bird):
def speak(self):
print("你叫什么啊")
def fly(self):
print("飞咯")
def func(bird: Bird):
bird.speak()
bird.fly()
owl = Owl()
func(owl)
niao = Niao()
func(niao)
-
继承