拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 【python入门到精通】python面向物件三大特点:封装,继承,多型

【python入门到精通】python面向物件三大特点:封装,继承,多型

白鹭 - 2022-02-14 2095 0 0

python语言是一门面向物件的语言,面向程序其实就是把程序当做设计核心,根据问题的发展顺序,依次解决问题,尽可能的把程序中涉及到的问题完善解决,他有他的优点,当拿到一个问题时,可以方便的按执行的步骤写代码,但是当逻辑关系变得复杂时,有一个地方出现差错就会导致整个程序无从下手,类似面向物件的编程语言有很多,例如C++ , java等,而面向物件的三大特点就是-----封装,继承,多型,下面将详细说明这三大特点的理解与用法,

开始文章前先解释下object自变量:

object:
注意类名后面括号里有个自变量object,他代表所有类的基类,也叫作超类,
这就有了一个新式类和旧式类的概念:
当用到多继承的时候,如果子类中没有想用的方法名或属性名,他会自动回到上面去找,那么按广度优先遍历的方法去寻找就是新式类(object);深度优先(括号里啥也没有),

一,python面向物件的特点------封装

面向物件编程有个好处就是代码复用,而其中一种方法就是通过继承机制,继承就是说定义的一个新类,继承现有的类,获得现有类的非私有属性、方法,提到个私有,就是上面提到的那个前面加两个下划线的那个东西,他在外部无法呼叫,继承他的子类也不能,被继承的那个类称为基类、父类或超类,继承的类叫子类也可以叫做派生类,
私有属性(补充):
在Python中,这一约定一般只是用来避免错误的方法呼叫,但完全无法阻止从外部呼叫这些被认为是“私有”的属性
python并没有真正的私有属性
用__定义的属性,只是被改名换姓而已
用_定义的属性,意义在于唤起用户的注意,看成私有属性
类变量:类变量在整个实体化的物件中是公用的,类变量定义在类中且在函式体之外,类变量通常不作为实体变量使用,
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个程序叫方法的覆写(override),也称为方法的重写,

特点:

含义:多继承,即子类有多个父类,并且具有它们的特征,与单继承差别不大类似格式如下,

class A:        # 定义类 A
.....

class B:         # 定义类 B
.....

class C(A, B):   # 继承类 A 和 B
.....
3 , 重写父类的方法

所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆写掉父类中同名的方法,例子如下:

class Cat:
    def sayHello(self):
        print("hello-----1")

class Bosi(Cat):

    def sayHello(self):
        print("hello-----2")
        
class Bali(Cat):

    def sayHello(self):
        print("hello-----3")

bosi = Bosi()
bali= Bali()
bosi.sayHello()
bali.sayHello()
"""
输出结果:
hello-----2
hello-----3
"""

三.python面向物件的特点------多型

通过方法重写我们可以让父类的同一个行为在子类中拥有不同的实作版本,当我们呼叫这个经过子类重写的方法时,不同的子类物件会表现出不同的行为,这个就是多型(poly-morphism),如上面的例子,

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *