Python 继承与多态

本文介绍了Python面向对象编程的两大特性——继承和多态。通过实例解释了继承的概念,展示了如何创建子类并重用父类的属性和方法,讨论了Python的多重继承以及如何处理构造方法。同时,文章探讨了多态的实现,包括子类方法覆盖父类方法以及鸭子类型的动态行为。最后,通过示例阐述了如何在不使用继承的情况下实现多态。
摘要由CSDN通过智能技术生成

   面向对象编程具有三大特性--封装性、继承性和多态性、这些特性使程序涉及具有良好的扩展性和健壮性,

1、  继承

    继承,是一种对类进行分层级划分的 概念,继承的基本思想是在一个类的基础上制定出一个新的类,这个新的类不仅可以继承原来类的属性和方法,还可以增加新的属性和方法,原来的类被成为父类,新的类被称为子类。

   举个简单例子。  如图,展示了公司和不同行业公司之间的关系。

 

    在图中,公司类具有法人属性和注册公司两个成员,互联网公司类和猎头公司类都有法人和注册公司,除此之外,还分别有研发部门、财务部门、研发项目、提供市场信息等各自的成员。这三个类中,公司类是父类,具有通用的属性和方法,互联网公司和猎头公司都是公司的子类,继承了父类的法人和注册公司,并且还各自具有自定义的属性和方法。

   一般情况下,编程语言没有限制一个类可以继承的父类数量,一个子类可以有多个父类,如图:

   有些语言例如Java、PHP等不支持多重继承,但是Python是支持多重 继承的,一个子类可以继承多个父类,有的语言例如Java、PHP等有接口(Interface)和抽象类(Abstract Class) 等概念,Python中也有相应的概念,但是语法本身不直接提供,(例如abc模块中有提供abstractmethod 等等)。

   在Python中定义子类也很简单,父类就和一般定义类一样,定义子类的语法如下:

class SubClass(BaseClass1, BaseClass2):

语法块

   定义要从那个父类继承,只需在定义子类的名字后面的括号中填入父类的名字,如果有多个父类则用逗号“,” 隔开。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Animal:
    def __init__(self, name):
        self.name = name

    def play(self):
        print ("我是", self.name)

class Dog(Animal):
    pass

dog = Dog("汉王")
dog.play()

   执行结果如下:

我是 汉王</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值