面向对象(三)

组合

组合是指的是一个对象中的属性,时另一个对象.

组合的目的和继承一样,为了减少代码冗余

封装

封装指的是把一堆属性(特征与技能)封装到一个对象中.

存数据的目的是为了取,对象可以对象"."属性的方式获取属性.

访问机制

在类内部定义,凡是以_开头的数据属性与方法属性,都会被python内部隐藏起来,让外部不能"直接"访问内部的__开头的属性

一推隐藏的属性与不能被外部轻易访问的属性,可以隐藏起来,不被外部直接调用.

property

定义:python内置的装饰器,主要是给内部的方法使用.

在对象调用某个方法时,将对象,方法()变成对象.方法(看起来像一个普通的数据类型)obj.bim() == obj.bmi

使用方法

@property

def 内部的方法(self)

多态

定义:多态指的是一类事物有多种形态

例如:

动物有多种形态:人,狗,猪

import abc
class animal(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def talk(self)
        pass

class People(A
             nimal):
    def talk(self):
        print('say hello')
        
 class Dog(Animal):
    def talk(self):
        print('say wangwang')

class Pig(Animal):
    def talk(self):
        print('say aoao')

文件有多种形态:文本文件,可执行文件

import abc
class file(metaclass=abc.ABCCMeat):
    @abc.abcstractmethod
    def click(self):
        pass

class Text(file):
    def click(self):
        peint('openn file')
        
class ExeFile(File):
    def click(self):
        print('excute file')
目的:

多态的目的是为了,让多种不同类型的对象,在使用相同功能的情况下,调用同一个名字的方法名.

父类:定义一套统一的标准.

子类:遵循父类的统一标准.

如何实现:

---继承父类

---继承抽象类

---鸭子类型

抽象类的目的

强制子类必须遵循父类的一套标准.

鸭子类型

在不知道当前对象是何物的情况下,但是你得长得像鸭子,那么你就是鸭子类型

继承:

耦合性太高,程序的可扩展性差

鸭子类型:

耦合度低,程序的可扩展性强

posted @ 2019-10-11 16:05  Mr-Allen  阅读(84)  评论(0)    收藏  举报