继承与派生知识点

派生与继承

继承(组合)

继承指的是新建类的方法,新建的类称之为子类或者派生类

子类继承的类叫做父类,也称之为基类或者超类

特征:(面试

子类可以继承父类的属性(特征或者技能),并且可以派生出自己的属性(特征与技能)

注:在Python中,一个子类可以继承多个父类,其他语言只能一个子类继承一个父类

继承的目的:

为了减少代码的冗余度

继承实现的方法:

1: 首先确定谁是子类,谁是父类

2 在定义时,子类(父类),实现继承

如何寻找继承关系:

先抽象,再继承

抽象:抽取相似的部分,称之为抽象

继承的关系:对象是特征和技能的结合体;

? 类是一系列对象相同特征和技能的结合体;

? 继承是一系列类相同特征和技能的结合体。

继承背景下,对象属性的查找顺序:

1 对象查找顺序会先从对象的名称空间中查找

2 对象里面没有,则再去类中

3 若当前类是子类,并且类中没有对象需要找的属性,再去父类查找

注:对象查找属性,孺子雷友,不管父类有没有,以子类的为准

派生

派生指的是子类继承父类的属性,并且派生出新的属性。

子类派生出新的属性,若是与父类的属性相同,则以子类为准;

集成式谁与谁的关系,指的是类与类的关系,子类与父类是从属关系。

子类派生出新的属性并且重用父类的属性:

父类:

class OldboyPeople:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

方式一:直接通过父类调用__ init __ ,把 __ init __当做普通函数调用,传入对象与集成的属性

class OldboyTeacher(OldboyPeople):
    # 等级, 薪资
    def __init__(self, name, age, sex, level, sal):
        OldboyPeople.__init__(self, name, age, sex)
        self.level = level
        self.sal = sal

class OldboyStudent(OldboyPeople):
    # 课程
    def __init__(self, name, age, sex, course):
        OldboyPeople.__init__(self, name, age, sex)
        self.course = course

    def choose_course(self):
        print(f'学生{self.name}选择课程{self.course}')

方式二:super是一个特殊的类,在子类中调用super()会得到一个特殊的保护对象,通过“.”指向命名空间

class OldboyTeacher(OldboyPeople):
    # 等级, 薪资
    def __init__(self, name, age, sex, level, sal):
        super().__init__(name, age, sex)
        self.level = level
        self.sal = sal

class OldboyStudent(OldboyPeople):
    # 课程
    def __init__(self, name, age, sex, course):
        super().__init__(name, age, sex)
        self.course = course

    def choose_course(self):
        print(f'学生{self.name}选择课程{self.course}')

新式类与经典类(面试):

在Python2 中才有经典类与新式类的区分

在Python3中,所有的类都是新式类

新式类:

继承object的类,称之为新式类

Python3中,子类不继承自定义的类!他只默认继承继承object

经典类:

在Python2 中,凡是没有继承object的类,都是经典类

“”“

mro():属于object——》type的函数,用来查看当前类的及策划那个顺序,再多继承的情况下

class C(A, B):
    # print('C...')
    # x = 1
    pass

print(C.mro())

”“”

钻石继承:(面试)

钻石继承也称为菱形继承。

再多继承的情况下形成的钻石继承(继承顺序):

? 经典类:深度优先

? 新式类:广度优先

原文地址:https://www.cnblogs.com/justztz/p/11651469.html

时间: 2024-11-06 21:48:56

继承与派生知识点的相关文章

黑马程序员-----类的继承和派生概念

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲 类的继承和派生概念 本小节知识点: 1.[理解]什么是继承? 2.[掌握]类的继承和派生概念 1.什么是继承? 2.OC中的继承与派生 1 #import <Foundation/Foundation.h> 2 3 @in

c++第四次实验-继承与派生

一.问题及代码 /* * 文件名称:学生成绩 * 作 者:刘晓龙 * 完成日期:2016年5月6日 * 版 本 号: * 对任务及求解方法的描述部分:继承与派生 * 输入描述:输入学生信息和班长信息 * 问题描述:打印学生信息和班长信息 * 程序输出:输出学生的信息和班长的信息 * 问题分析:运用继承和派生 * 算法设计:无 */ #include <iostream> #include <string> using namespace std; class Stu //声明基类

程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1

描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8. ijAl- 9. ijAl-mnop 10. qrst-abcd- 11. abcd-qrst-abcd- uvw xyz about big me take abcd qrst-abcd- 要 求:MyString类必须是从C++的标准类string类派生而来.提示1:如果将程序中所有 "My

C++继承与派生

2017-06-25 23:00:59 c++中的继承和派生是面向对象编程中的一个重要内容,通过继承可以实现代码的复用,同时继承也是实现多态性的基础. 一.c++继承的基本形式 class 派生类名:继承方式 基类名,继承方式 基类名 {}: 继承方式主要有三种,public ,private ,protected. 缺省条件下是private继承,三种中public继承用的最多,不同的继承方式决定了子类中从基类继承过来的成员的访问属性. public继承: 基类的public,protecte

四.OC基础--1.文档安装和方法重载,2.self和super&amp;static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&amp;私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

模块的封装之C语言类的继承和派生

[交流][微知识]模块的封装(二):C语言的继承和派生 在模块的封装(一):C语言的封装中,我们介绍了如何使用C语言的结构体来实现一个类的封装,并通过掩码结构体的方式实 现了类成员的保护.这一部分,我们将 在此的基础上介绍C语言类的继承和派生.其实继承和派生是一个动作的两种不同角度的表达 .当我们继承了一个基类而创造了一个新类时,派生的概念就诞生了.派生当然是从基类派生的.派生出来的类当然是继承了基类的 东西.继承和派生不是一对好基友,他们根本就是一个动作的两种不同的说法,强调动作的起始点的时候

3.继承与派生

1.类的继承与派生 - 类的继承:从已有类产生新类的过程.原有类称为基类或父类,产生的新类称为派生类或子类. - 派生类语法: class 派生类名:继承方式   基类名1,继承方式 基类名2,... { } - 单继承和多继承:基类个数决定 - 直接基类,间接基类 - 继承方式规定了如何访问从基类继承的成员 - 派生类成员是指除了从基类继承的所有成员之外,新增加的数据和函数成员 - 派生类生成过程:吸收基类成员->改造基类成员->添加新的成员,构造函数和析构函数都不被继承 2.访问控制 -

嵌入式linux C++语言(七)——继承与派生

嵌入式linux C++语言(七)--继承与派生 一.继承 在C++编程中软件可重用性(software reusability)是通过继承(inheritance)机制来实现的.类的继承,是新的类从已有类那里得到已有的特性.或从已有类产生新类的过程就是类的派生.原有的类称为基类或父类,产生的新类称为派生类或子类. 派生类的声明:class 派生类名:[继承方式] 基类名{派生类成员声明:};    一个派生类可以同时有多个基类,这种情况称为多重继承,派生类只有一个基类,称为单继承. 继承方式规

继承与派生,重载&lt;&lt;

///继承与派生 #include <iostream> using namespace std; class Point { public: Point (float a=0,float b=0):x(a),y(b) {} ///有默认参数的构造函数 void setPoint (float,float); ///重新设置坐标 ///读x的坐标,getX为常成员函数,只能访问类的数据,而不能更改 float getX() const { return x; } float getY() co