python基础--面向对象之多态
# 多态是指一类事物有多种行态,
# 例如:动物有多种形态:人,狗,猫
# 他们有一些共同的特征:吃,喝,拉,撒
# 多态性是指在不考虑实例类型的情况下使用实例
# 对同一事物不同的类,对象有不同的响应,
# 例如:放假了,有的同学回家,有的去旅游,有的去兼职
# 有的在敲代码(就是我啦)
# 列表,字符串,字典都有len属性,但是是不同的执行过程。
class Animal():
def talk(self):
pass
class People(Animal):
def __init__(self,name):
self.name = name
def talk(self):
print("%s 说人话"%self.name)
class Cat(Animal):
def __init__(self,name):
self.name = name
def talk(self):
print("%s 说猫话"%self.name)
class Dog(Animal):
def __init__(self,name):
self.name = name
def talk(self):
print("%s 说狗话"%self.name)
peo = People('wang')
cat = Cat('cat')
dog = Dog('dog')
peo.talk()
cat.talk()
dog.talk()
# 多态性的函数
# 1,增加了程序的灵活性,
# 2,增加了程序的课扩展性
# 鸭子类型
# python崇尚鸭子类型,Python崇尚鸭子类型,即‘如果
# 看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’ # python程序员通常根据这种行为来编写程序。例如,如果想编
# 写现有对象的自定义版本,可以继承该对象 # 也可以创建一个外观和行为像,但与它无任何关系的全
# 新对象,后者通常用于保存程序组件的松耦合度。
python基础--面向对象之多态的更多相关文章
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- Python 基础 面向对象之二 三大特性
Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...
- python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)
python基础--面向对象 (1)面向过程VS面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. ...
- python基础——继承和多态
python基础——继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类 ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
- python基础——面向对象进阶
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...
- python基础——面向对象的程序设计
python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...
- 第八章:Python基础の面向对象(二)
本課主題 面向对象的多态 面向对象的成员 成员修饰符 特殊成员 面向对象其他应用 异常处理 设计模式与单例模式 面向对象的多态 指定参数类型只是多态的一种表现 另外一种是允许自己类型和自己的子类型(典 ...
- Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础
本节内容: 1. 面向对象高级语法部分 1.1 静态方法.类方法.属性方法 1.2 类的特殊方法 1.3 反射 2. 异常处理 3. Socket开发基础 1. ...
随机推荐
- JavaScript面向对象OOM 2(JavaScript 创建对象的工厂模式和构造函数模式)
在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式.但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界 ...
- k8sService资源
一.service资源及其实现模型 通过规则定义出由多个pod对象组合而成的逻辑集合,以及访问这组pod的策略.service关联pod资源的规则要借助于标签选择器来完成 1.service资源概述 ...
- vue自定义指令,自动调用下载的方法
directives: { clickDown: { inserted (el, binding, item) { if (+binding.value.item.fromId === +item.c ...
- 学到了林海峰,武沛齐讲的Day51 django+数据库
连不上,通过这一步解决 搞死了..辛苦但觉得值得 刷数据库 出问题 IDEA关联MySQL报错:Server returns invalid timezone. Go to ‘Advanced’ ta ...
- DevOps之Pipeline集成junit、jacoco、SonarQube(二)
一.准备工作 1.准备一个持续集成的代码工程 工程下载地址: Github地址为:https://github.com/zbbkeepgoing/springboot-demo 2.springboo ...
- vue 绑定class、v-bind:style(对象语法、数组语法)
绑定 HTML Class 我们可以传给 v-bind:class 一个对象,以动态地切换 class: 内联样式在模板里 <div id="div1" :class=&qu ...
- 查看服务的cpu gpu各类内存 cpu频率等等信息
Linux版本cat /etc/redhat-releasecat /etc/lsb-release内核版本号cat /proc/version查看CPU信息(型号)cat /proc/cpuinfo ...
- Java多线程和并发(二),Thread中的start和run的区别
目录 1.调用run方法 2.调用start方法 3.start和run的区别 二.Thread中的start和run的区别 1.调用run方法 public class ThreadTest { p ...
- 洛谷 P1546 最短网络 Agri-Net x
题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其 ...
- Tarjan 【整理】
Tarjan [整理] #include<bits/stdc++.h> using namespace std; class FastIO{ /* copyright (c) dgklr ...