美文网首页
面向对象——继承

面向对象——继承

作者: 一念之间789 | 来源:发表于2017-07-29 15:52 被阅读0次

继承:面向对象的一个非常重要的特征,通过一个类型对另一个类型的继承,达到代码重复利用的目的,同时提高了代码功能的扩展性
继承的语法:class 类型(父类):
pass
一切皆对象:所有的类型,都是直接或者间接继承自object对象

1.1继承

父类:被继承的类,称为父类,也称为基类、超类
子类:继承了父类的类,称为子类,也称为派生类
子类拥有父类的公共属性和公共方法
案例:鲁智深是天神下凡

class God():
    def __init__(self,name):
        self.name = name
    def eat(self):
        print("修炼,吸天地之灵气,日月之精华···")
class LZS(God):
    def drink(self):
        print("去青楼,喝花酒·····")
class TianPeng(God):
z = LZS("鲁智深")
z.eat()
z.drink()
bajie = TianPeng("八戒")
bajie.eat()
Paste_Image.png

1.2继承父类,继承父类

子类继承父类,父类还可以继承父类

子类拥有所有父类的公共属性和公共方法

提高了代码功能的复用性

1.3 多继承

一个子类,可以同时继承多个父类

多继承,反应了生活中表现的多个角色

子类可以同时使用多个父类的属性和方法

父类中出现相同属性或者方法,优先继承权

类名称.mro:查看属性/方法搜索顺序

尽量不要在多个类中出现名称相同的属性和方法

定义了一个基础类

class Person(object):
    def __init__(self):
        self.__name = "tom"

class Student(Person):
    def eat(self):
        print("吃食堂···")
    def respect(self):
        print("尊师重道")

class Son(Person):
    def eat(self):
        print("吃零食···")
    def fealty(self):
        print("孝敬长辈")

class User(Son ,Student):
    def play(self):
        print("玩游戏")
u = User()
u.play()
u.respect()
u.fealty()
u.eat()
print(User.__mro__)
Paste_Image.png

1.4 方法重写

方法重写:子类重新定义父类中存在的方法

重写体现了子类的独立性和可变性(多态)

方法重写的条件

继承的关系

父类存在的方法

子类重新定义

classGod(object):
    def__init__(self,name):
        self.name=name
    defeat(self):
        print("修炼,吸天地之灵气,日月之精华···")

classLZS(God):
    def drink(self):
        print("去青楼,喝花酒·····")
classTianPeng(God):
    def  eat(self):
        print("一顿吃十大碗饭····")
    def  drink(self):
        print("喝汤")

z=LZS("鲁智深")
z.eat()
z.drink()
bajie=TianPeng("八戒")
bajie.eat()
bajie.drink()
Paste_Image.png

相关文章

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

  • 王艳华Pythonday03

    Python的面向对象 Java 面向对象 继承

  • Python面向对象继承

    面向对象继承 面向对象编程 (OOP),英语全称:Object Oriented Programming,面向对象...

  • java基础-day10-面向对象4.0

    面向对象4.0 1. 面向对象之继承 1.1 生活中的继承 1.2 Java中的继承 1.3 子类对象创建,会调...

  • 面对对象高级编程

    面向对象高级编程: 面向对象编程:封装、继承和多态 面向对象高级编程:多重继承、定制类和元类

  • Web前端经典面试试题及答案2

    javascript面向对象中继承实现? 面向对象的基本特征有:封闭、继承、多态。在JavaScript中实现继承...

  • JAVA语言第二课

    JAVA面向对象——四大特征 继承篇——extendsJava 继承继承的概念继承是java面向对象编程技术的...

  • js面向对象设计

    面向对象模式 继承

  • JavaScript 面向对象编程

    JavaScript 快速入门 面向对象编程创建对象构造函数忘记写new怎么办?原型继承class继承 面向对象编...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

网友评论

      本文标题:面向对象——继承

      本文链接:https://www.haomeiwen.com/subject/cicclxtx.html