1.继承

class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('子类独有的方法!')
# 子类可以使用父类中的方法
p = Person('yhf',23,'女')
p.eat()

  子类也可以继承父类的属性:

class Animal:
a_type = '动物'
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('独有的方法!') p = Person('yhf',23,'女')
# 子类也可以继承父类的属性
print(p.a_type)

2.重构父类中的方法

class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('独有的方法!')
# 重写父类的方法
def eat(self):
print('人在吃饭')
# 子类和父类的方法重名,此时则执行子类中的方法,不执行父类中的方法
p = Person('yhf',23,'女')
p.eat()

  属性的重构:

class Animal:
a_type = '动物'
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
a_type = '高级动物'
def talk(self):
print('独有的方法!') p = Person('yhf',23,'女')
# 子类和父类的属性重名,此时按照子类的属性,不按父类的属性
print(p.a_type)

  不完全重构(先执行子类的方法,在执行父类的方法)

class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('独有的方法!')
# 重写父类的方法
def eat(self):
Animal.eat(self) #在子类方法中调用父类方法中的重名方法,可以实现父类和子类中的同名方法都执行
print('人在吃饭') p = Person('yhf',23,'女')
p.eat()

  执行父类的构造方法:

class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
# 在子类的构造函数中调用父类的构造函数,同时执行子类和父类的构造方法
def __init__(self,name,age,sex,efv):
Animal.__init__(self,name,age,sex)
self.efv = efv p = Person('wdc','','男',2019)
print(p.name,p.sex,p.age,p.efv)

  super方法:效果同上

class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
# 在子类的构造函数中调用父类的构造函数,同时执行子类和父类的构造方法
def __init__(self,name,age,sex,efv):
# super方法:super(子类名,self).__init__(参数)或者super().__init__(属性)
# super(Person,self).__init__(name,age,sex)
super().__init__(name, age, sex)
self.efv = efv p = Person('wdc','','男',2019)
print(p.name,p.sex,p.age,p.efv)

python_面向对象——继承的更多相关文章

  1. OC面向对象—继承

    OC面向对象—继承 一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). ...

  2. 面向对象继承实例(a如何继承b)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. js面向对象继承

    前言 最近看到js面向对象这章节了,主要学习了原型和面向对象继承关系,为了梳理自己的知识逻辑,特此记录. js的面向对象 先说说我目前了解的js创建对象方法 1.写一个函数,然后通过new创建对象 2 ...

  4. Php面向对象 – 继承和重写

    Php面向对象 – 继承和重写 承受: php于,通过类.使用特殊的经营宗旨. 通过定义类,采用extends来表示当前的类对象继承该类的对象. 样例: class C { public  $p_c  ...

  5. Java面向对象 继承(下)

     Java面向对象   继承(下) 知识概要:               (1)抽象类 1.1 抽象类概述                            1.2 抽象类的特点       ...

  6. Java面向对象 继承(上)

       Java面向对象 继承 知识概要:         (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...

  7. js高级-面向对象继承

    一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 var a = {}; //批量创建不方便,不能重复设置公共属性的代码 //工厂模式出现了,创建10个Cat对象 ...

  8. 面向对象 继承 抽象类 接口 static 权限修饰符

    Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...

  9. Python之面向对象继承和派生

    Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...

随机推荐

  1. Codis-proxy的配置和启动

    生成配置文件,即将现有的配置文件输出到指定目录位置: ./codis-proxy --default-config | tee conf/proxy.toml 修改配置文件信息: vi conf/pr ...

  2. chapter01图像基本操作

    刚刚开始学习opencv,来记录一下自己的学习笔记,也向各位大牛虚心求教 一.图片的基本知识 只要是彩色的图片都有三个颜色通道,即RGB,用三个矩阵来表示. 三个矩阵的同一个坐标位置上的数值描述的是一 ...

  3. 点击 显示红色 小案例 vue

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. c# 中对于每次修改的程序 都必须重新手动生成 才能编译的问题

    问题描述:原来用VS2017,升级了VS2019,发现修改了Winform界面,F5运行竟然还是原来的界面 问题解决: 需要修改两个地方 工具>> 选项>> 项目和解决方案&g ...

  5. K8S从入门到放弃系列-(11)kubernetes集群网络Calico部署

    摘要: 前面几个篇幅,已经介绍master与node节点集群组件部署,由于K8S本身不支持网络,当 node 全部启动后,由于网络组件(CNI)未安装会显示为 NotReady 状态,需要借助第三方网 ...

  6. 【牛客网】Idol Master

    [牛客网]Idol Master 也是一道网络流解线性规划 不过需要从小于号的那边解 限制是\(a \leq \sum_{i = 1}^{k} x_{i}\leq b\) 其中\(0 \leq x_{ ...

  7. Go语言学习笔记(7)——函数和方法

    Go语言中同时有函数和方法! 函数: go程序必须要包含一个main函数.main函数不能有任何参数和返回值! 1. 定义方法示例: func max(num1, num2 int) int { // ...

  8. uboot-的start.S详细注解及分析

    原文地址:uboot-的start.S详细注解及分析 作者:zhouyg11 大多数bootloader都分为stage1和stage2两部分,u-boot也不例外.依赖于CPU体系结构的代码(如设备 ...

  9. 前端开发 Vue -3axios

    Axios是什么? 应该念“阿克希奥斯”……但是太长太拗口,我一般念“阿笑斯”…… Axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get.post请求.说到get.po ...

  10. Python练习_初识函数_day9

    1. 1.作业 1,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. 2,写函数,判断用户传入的对象(字符串.列表.元组)长度是否大于5. 3,写函数,检查 ...