python_面向对象——继承
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_面向对象——继承的更多相关文章
- OC面向对象—继承
OC面向对象—继承 一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). ...
- 面向对象继承实例(a如何继承b)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js面向对象继承
前言 最近看到js面向对象这章节了,主要学习了原型和面向对象继承关系,为了梳理自己的知识逻辑,特此记录. js的面向对象 先说说我目前了解的js创建对象方法 1.写一个函数,然后通过new创建对象 2 ...
- Php面向对象 – 继承和重写
Php面向对象 – 继承和重写 承受: php于,通过类.使用特殊的经营宗旨. 通过定义类,采用extends来表示当前的类对象继承该类的对象. 样例: class C { public $p_c ...
- Java面向对象 继承(下)
Java面向对象 继承(下) 知识概要: (1)抽象类 1.1 抽象类概述 1.2 抽象类的特点 ...
- Java面向对象 继承(上)
Java面向对象 继承 知识概要: (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...
- js高级-面向对象继承
一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 var a = {}; //批量创建不方便,不能重复设置公共属性的代码 //工厂模式出现了,创建10个Cat对象 ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- Python之面向对象继承和派生
Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...
随机推荐
- php5.6安装及php-fpm优化配置
1,安装依赖包: yum install -y gcc gcc-c++ zlib zlib-devel pcre pcre-devel gd libjpeg libjpeg-devel libpn ...
- Max coverage disjoint intervals
Assume you have k<=10^5 intervals [a_i, b_i] \in [1,10^18] (some of them may overlap), and you ne ...
- zookeeper-data
1. The ZooKeeper Data Model 1.1 ZNodes Znodes maintain a stat structure: The Stat structure for each ...
- 10分钟学会使用Markdown绘制UML时序图
1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...
- MySQL 使用tee记录语句和输出日志
在mysql命令行中,使用tee命令,可以记录语句和输出到指定文件.在debugging时会很有用.每执行一条语句,mysql都会讲执行结果刷新到指定文件.Tee功能只在交互模式生效. mysql&g ...
- axios全局配置及拦截器
axios使用说明文档 axios 全局配置: //axios-init.js import axios from 'axios': let loadingInstance; //创建Loading ...
- flex应用实例
代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...
- 抓某音乐播放器时现在多了个vkey,导致播放地址有问题,如何抓到vkey
一:在已经通过axios和vue-cli本地服express通过地址获取到songmid这个参数 在js里面地址和参数如下: // 获取歌手和歌曲的详细信息 export function getSi ...
- leetcode-8.atoi · string *
题面 原题挺长的,还是英文,就不抄了,
- SAP官方发布的ABAP编程规范
最近有朋友在公众号后台给我留言,"Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西"? 其实Jerry在刚开始写这 ...