zoukankan      html  css  js  c++  java
  • python中的面向对象学习以及类的多态

    接下来类的第三个重要的特性:多态(一种接口,多种实现)

    多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
    那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用多态的作用,就是为了类在继承的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

    Python 很多语法都是支持多态的,比如 len(),sorted(), 你给len传字符串就返回字符串的长度,传列表就返回列表长度。

     
    class Animal(object):
        def __init__(self, name):  # Constructor of the class
            self.name = name
     
        def talk(self):              # Abstract method, defined by convention only
            raise NotImplementedError("Subclass must implement abstract method")
     
     
    class Cat(Animal):
        def talk(self):
            print('%s: 喵喵喵!' %self.name)
     
     
    class Dog(Animal):
        def talk(self):
            print('%s: 汪!汪!汪!' %self.name)
     
     
     
    def animal_talk(obj): #一个接口,多种实现,相当于是父类的属性,所以是在全局定义中
        obj.talk()
     
    c = Cat('小晴')
    d = Dog('李磊')
     
    animal_talk(c)
    animal_talk(d)  # 也就是一个接口可以让cat类和dog类都实现功能,只要把参数修改就好
    
    

    在这里插入图片描述

    本人目前在学习python、前端、数据库和linux相关的内容,故打算写一些学习笔记,包括安装软件遇到的一些问题、编程语言的学习。 学习如逆水行舟,你在原地踏步的同时,别人一直在前进!
  • 相关阅读:
    汇编语言 第三章 寄存器
    汇编语言 第二章
    实验一 查看CPU和内存,用机器指令和汇编指令教程
    nginx的log、upstream和server
    高并发情况下Linux系统及kernel参数优化
    二进制方式安装docker(非root用户启动docker)
    redis
    redis配置文件详解
    Keepalived+LVS实现LNMP网站的高可用部署
    Nginx location相关配置说明
  • 原文地址:https://www.cnblogs.com/souhaite/p/10585602.html
Copyright © 2011-2022 走看看