zoukankan      html  css  js  c++  java
  • 面向对象之继承

    1.什么是继承?

          继承一种新建类的方式,在python中支持一个儿子继承多个爹

          新建的类叫做子类或者派生类

          父类又可以称为基类或者超类

          子类或‘遗传’父类的属性

    2.为什么要用继承

       减少代码的冗余

    3.怎么用继承

    ‘’‘

    class ParentClass1:#定义父类

            pass

    class ParentClass2:#定义父类

            pass

    class  Subclass1( ParentClass1):

            pass

    class  Subclass2(ParentClass1,class ParentClass2):

            pass

    2.寻找继承关系

    ’‘’

    1.继承是类与类之间的关系,寻找这种关系需要先抽象再继承

    ‘’‘

    class OldboyPeople:

        school='oldboy'

       def __init__(self,name,age,sex):

          self.name=name

          self.age=age

          self.sex=sex

    class OldboyTeacher(OldboyPeople):

          def change_score(self):

               print('teacher %s is changing score'%self.name)

    class OldboyStudent(OldboyPeople):

          def choose(self):

               print('student %s is choose score'%self.name)

    tea1=Oldboyteacher('egon',18,'male')#OldboyTeacher.__init__(....)

    stud1=Oldboystudent('alex',33,'male')

    print(test1.name,test1age,test1.sex)

    3.基于继承再看属性查找

    #派生:子类定义自己新的属性,如果与父类同名,以子类自己为准

    4.在子类派生新方法中重用父类的功能

    方式一:指名道姓的调用(其实与继承没有什么关系)

    方式二:super()调用严格依赖于继承

    super()的返回值是一个特殊的对象,该对象专门用来调用父类中的属性

    #在Python2中需要super(自己的类名,self) 

    5.经典类和新生类

    1️⃣新生类:

           继承object的类,以及该类的子类,都是新式类

           在Python3中,如果一个类没有指定的继承的父类,默认就是继承object

           所以说lpython3中所有的类都是新式类

    2️⃣经典类(只有在python2才区分经典类与新式类):

             没有继承object的类,以及该类的子类,都是经典类

    继承描述的是子类与父类之间的关系,是一种什么是什么的关系。要找出这种关系,必须先抽象再继承

    抽象即抽取类似或者说比较像的部分。

    抽象分成两个层次: 

    1.将奥巴马和梅西这俩对象比较像的部分抽取成类; 

    2.将人,猪,狗这三个类比较像的部分抽取成父类。

    抽象最主要的作用是划分类别(可以隔离关注点,降低复杂度)

     

    继承:是基于抽象的结果,通过编程语言去实现它,肯定是先经历抽象这个过程,才能通过继承的方式去表达出抽象的结构。

    抽象只是分析和设计的过程中,一个动作或者说一种技巧,通过抽象可以得到类

    6.在多继承背景下的属性查找

    #coding:utf-8(在python2中要有个文件头,不然中文无法注释)

    在菱形继承的背景下,查找属性

    经典类:深度优先

    新式类:广度优先

  • 相关阅读:
    Struts2 helloWorld
    Python学习笔记基础汇总部分
    从控制台读入,典型的装饰者模式
    随机数产生方法小知识点
    Struts2基础知识
    面向对象原则之GOF是招式,九大原则才是精髓
    静态工厂方法
    单例模式singleton
    J2SE基础夯实系列之JDBC,链接数据库实例代码
    Ubuntu 12.04 下安装ssh 服务遇到的问题以及总结
  • 原文地址:https://www.cnblogs.com/shengg/p/8807945.html
Copyright © 2011-2022 走看看