zoukankan      html  css  js  c++  java
  • python之继承、抽象类、派生、多态、组合、封装

     

    1、继承概念的实现方式主要有2类:实现继承、接口继承。

    Ø         实现继承是指使用基类的属性和方法而无需额外编码的能力;
    Ø         接口继承是指仅使用属性和方法的名称、子类必须提供实现的能力(子类重构爹类方法);
    父类是抽象类,仅定义将由子类创建的一般属性和方法。
     
    2、抽象类
    同java里的接口定义,父类不实现任何功能
    import abc
    class Animal:
        @abc.abstractmethod
        def run(self):
            pass
        @abc.abstractmethod
        def eat(self):
            pass
    
    class People(Animal):
        def run(self):
            print('people is walking')
        def eat(self):
            print('people is eating')
     
     3、派生

      除了继承父类的,还要派生属于自己的属性

     

    4、多态是为了实现接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中不同的实例(如People,Pig)的某一属性时的正确调用。
     
     5、组合  

    对象作为另一个对象的属性,如 teacher1.course = python 其中python是个课程对象

     

    6、封装

    加__变形后实现隐藏,意义是隔离复杂性,特性如下

      1、在类外部无法直接obj.__AttrName

      2、在类内部直接obj.__AttrName

      3、子类无法覆盖父类__开头的属性

    class A:
        __x = 1
    
        def __init__(self,name):
            self.__name = name
    
        def __foo(self):
            print('run foo')
            print(self.__x)
    
    a = A('egon')
    a._A__foo()
    print(a._A__x)
  • 相关阅读:
    struts2校验器
    Struts2 验证框架 validation.xml 常用的验证规则
    MVC 无法找到资源
    架构设计
    金山西山居初赛第二场 美素数
    K Smallest Sums
    金山游戏编程复赛 连续最大积
    C++大作业之链表实现的高精度加法,减法,和数组实现的高精度乘法。
    POJ 3250 Bad Hair Day
    PoJ2492A Bug's Life并查集
  • 原文地址:https://www.cnblogs.com/stin/p/8311652.html
Copyright © 2011-2022 走看看