美文网首页
继承、多态

继承、多态

作者: p712long | 来源:发表于2018-02-07 10:24 被阅读0次

class A:

    print("First A")

    def __init__(self,a):

        print("A")

    print("First A1")   

class B:

    print("First B")

    def __init__(self,a,b):

        print("B")

class D(A,B):# 当我们在实例化子类时,则会先初始化继承的父类

    print("D")

    def __init__(self,a,b,c):

        super(D,self).__init__(a)

        self.c=c

d = D(1,2,3) #实例化子类

# First A

# First A1

# First B

# D

# A   

(1) 一个类可以不继承任何类,也可以继承一个类或多个类;

(2) 无论父类中有多少个__init__方法,只会执行其中1个;

(3) 子类可以覆盖父类中的属性或方法;

(4) 当我们在实例化子类时,则会先初始化继承的父类,父类的执行顺序按照从左到右顺序执行;

多态(polymorphic)必须满足三个条件:

(1) 继承;

(2) 重写;

(3) 父类对象指向子类实例;

class Animal:

    def __init__(self, name):

        self.name = name

    def talk(self): 

        pass

    @staticmethod ####如果硬要说多态,建议使用静态方法来处理,而非普通函数

    def animal_talk(obj):

        obj.talk()

class Cat(Animal):

    def talk(self):

        print('喵!')

class Dog(Animal):

    def talk(self):

        print('wang')

d = Dog("小黑")

c = Cat("小白")

# def animal_talk(obj):

#    obj.talk()    ###这也是一个能实现功能的函数,因此python多态才具有争议性

Animal.animal_talk(c)

Animal.animal_talk(d)

相关文章

  • 2020-05-16--Java--day09【继承、super

    1.继承 三大特征:封装,继承,多态 继承是多态的前提,没有继承就没有多态 继承的主要解决的问题就是:共性抽取 在...

  • Lession08继承和多态

    继承 多态 继承练习

  • 继承、抽象类与接口

    第1节 继承 继承的概述 面向对象的三大特征:封装性、继承性、多态性。继承是多态的前提,如果没有继承,就没有多态。...

  • 周记二

    周一:今天学了继承和多态,继承有public继承、protected继承、private继承,多态和虚函数一对,抽...

  • 多态

    OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。 在使用多态...

  • Python类和实例

    关键词:class 继承和多态:(object) 如果没有其他需要继承的类,则默认继承(object) 多态这里和...

  • 面向对象

    继承与多态

  • Java 多态、组合、继承

    多态 组合 继承

  • iOS开发之一OC语言的特性

    三大特性:封装、继承、多态 一、封装(成员变量的封装) 二、继承 三、多态(多种形态)

  • 31-封装、继承、多态

    封装、继承、多态 面向对象编程有三大重要特征:封装、继承和多态。 继承 继承机制实现了代码的复用,多个类公用的代码...

网友评论

      本文标题:继承、多态

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