Python面向对象之 - 继承
情况一: 子类完全继承父类所有的属性和方法, 自己没有一点更改.
class Person():
def __init__(self, name, age):
self.name = name
self.age = age def run(self):
print("跑步!") def eat(self, food):
print("吃%s!"%food) class Student(Person):
pass # 用pass占位, 完全继承父类的一切, 而且不做任何修改. stu = Student("tom", 18)
print(stu.name, stu.age)
stu.run()
stu.eat("apple")
# 结果:
# tom 18
# 跑步!
# 吃apple!
情况二: 子类继承父类的所有属性和方法, 而且自己想要增加新的方法.
class Person():
def __init__(self, name, age):
self.name = name
self.age = age def run(self):
print("跑步!") def eat(self, food):
print("吃%s!"%food) class Student(Person):
def drink(self): # 增加父类中没有的新的方法.
print("喝水!") stu = Student("tom", 18)
print(stu.name, stu.age)
stu.run()
stu.eat("apple")
stu.drink() # 结果:
# tom 18
# 跑步!
# 吃apple!
# 喝水!
情况三: 子类继承自父类, 但是自己想要完全替换掉父类中的某个方法.
class Person():
def __init__(self, name, age):
self.name = name
self.age = age def run(self):
print("跑步!") def eat(self, food):
print("吃%!"%food) class Student(Person):
def eat(self): # 重写父类方法, 将会完全覆盖掉原来的父类方法.
print("吃东西!")
stu = Student("tom", 18)
print(stu.name, stu.age)
stu.run()
stu.eat() # 结果:
# tom 18
# 跑步!
# 吃东西!
情况四: 子类继承父类的所有属性和方法, 并且想在原有父类的属性和方法的基础上做扩展.
class Person():
def __init__(self, name, age):
self.name = name
self.age = age def run(self):
print("跑步!") def eat(self, food):
print("吃%s!"%food) class Student(Person):
def __init__(self, name, age, height):
super(Student, self).__init__(name, age) # 对父类属性进行扩展
self.height = height # super()内的(子类名, self)参数可以不写 def eat(self, food):
super(Student, self).eat(food) # 对父类方法进行扩展
print("再吃一个!") # super()内的(子类名, self)参数可以不写 stu = Student("tom", 18, 175)
print(stu.name, stu.age, stu.height)
stu.run()
stu.eat("apple")
# 结果:
# tom 18 175
# 跑步!
# 吃apple!
# 再吃一个!
Python面向对象之 - 继承的更多相关文章
- Python 面向对象编程 继承 和多态
Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: c ...
- Python面向对象编程——继承与派生
Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...
- Python面向对象03 /继承
Python面向对象03 /继承 目录 Python面向对象03 /继承 1. 初识继承 2. 单继承 3. 多继承 4. 总结 1. 初识继承 概念:专业角度:如果B类继承A类,B类就称为子类,派生 ...
- python面向对象(封装,继承,多态)
python面向对象(封装,继承,多态) 学习完本篇,你将会深入掌握 如何封装一个优雅的借口 python是如何实现继承 python的多态 封装 含义: 1.把对象的属性和方法结合成一个独立的单位, ...
- python面向对象编程 继承 组合 接口和抽象类
1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的 ...
- python面向对象的继承-组合-02
*面向对象(OOP)的三大特征:**# 封装.继承.多态 继承 什么是继承 继承:# 是一种关系,描述两个对象之间什么是什么的什么的关系 例如:麦兜.佩奇.猪猪侠.猪刚鬣,都是猪 为什么要使用继承 继 ...
- python 面向对象之继承与派生
一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...
- python面向对象之继承/多态/封装
老师说,按继承/多态/封装这个顺序来讲. 子类使用父类的方法: #!/usr/bin/env python # coding:utf-8 class Vehicle: def __init__(sel ...
- python面向对象之继承与派生
一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承,如果是多继承的 ...
- 十七、Python面向对象之继承
在面向对象,继承是一个很重要的特性 子类与父类,子类是对父类的一种扩展,在父类的属性和方法上进行一些扩展 示例:没带继承 #定义一个带编号和状态的门的类 class Door(object): d ...
随机推荐
- Python多环境管理神器(pyenv)
前面我们已经介绍了,python中两种最基础的虚拟环境管理工具,venv和virtualenv,其中virtualenv可以和virtualenvwrapper配合使用.详情请参考:https://w ...
- XSS-lab通过教程🐶
XSS-lab通过教程 Level-1 payload:http://192.168.33.222:40577/level1.php?name=<script>alert(123)< ...
- 《剑指offer》面试题42. 连续子数组的最大和
问题描述 输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值. 要求时间复杂度为O(n). 示例1: 输入: nums = [-2,1,-3,4 ...
- JVM完整详解:内存分配+运行原理+回收算法+GC参数等
不管是BAT面试,还是工作实践中的JVM调优以及参数设置,或者内存溢出检测等,都需要涉及到Java虚拟机的内存模型.内存分配,以及回收算法机制等,这些都是必考.必会技能. JVM内存模型 JVM内存模 ...
- HTML+CSS+Javascript实现轮播图效果
HTML+CSS+Javascript实现轮播图效果 注意:根据自己图片大小来更改轮播图大小. <!doctype html> <html> <head> < ...
- netty基础知识
参考 http://www.infoq.com/cn/articles/netty-high-performance 1. 传统 RPC 调用性能差的三宗罪 1)网络传输方式问题 2)序列化方式问题 ...
- JUC之文章整理以及汇总
JUC文章汇总 JUC部分将学习<JUC并发编程的艺术>和<尚硅谷-大厂必备技术之JUC并发编程>进行博客的整理,各文章中也会不断的完善和丰富. JUC概述 JUC的视频学习和 ...
- golang中math常见数据数学运算
package main import ( "fmt" "math" ) func main() { fmt.Println(math.Abs(-19)) // ...
- Go 面向对象编程应用
#### Go 面向对象编程应用前面学习了很多的基础知识,这一节来实际写一个小案例:涉及到的知识: 1. 数组的基本使用2. 结构体3. 切片 4. 方法5. 循环6. 函数返回值(命名返回值,普通返 ...
- 返回值String是文本数据
MyController类中: index.jsp中 修改text前: 改为text后: 还是有乱码是因为使用这个ISO-8859-1编码处理的 MyController中修改注解中属性