day24 01 初识继承
day24 01 初识继承
面向对象的三大特性:继承,多态,封装
一、继承的概念
继承:是一种创建新类的方式,新建的类可以继承一个或者多个父类,父类又可称基类或超类,新建的类称为派生类或者子类
class A: # 父类,基类,超类
pass
class B: # 父类,基类,超类
pass
class A_son(A,B): # 子类,派生类
pass
class AB_son(A,B): # 子类,派生类
pass
- 一个类可以被多个类继承,先有父类才有子类
- 一个类可以继承多个父类----只在python里面才可以,其他语言不可以
注意:从父类不能知道自己将会被哪个类继承,但是从子类肯定可以知道自己的父类,这是从子类像父类指向单方向线程
二、父类的查看方法
类似于对像可以使用_dict_方法查看属性,子类也可以使用_bases_方法查看它的父类
class A: # 父类,基类,超类
pass
class B: # 父类,基类,超类
pass
class A_son(A): # 子类,派生类
pass
class B_son(A,B): # 子类,派生类
pass
class AB_son(A,B): # 子类,派生类
pass
print(A_son.__bases__)
print(B_son.__bases__)
print(AB_son.__bases__)
print(A.__bases__)
print(B.__bases__)
运行结果:
C:\Users\sku1-1\PycharmProjects\untitled\venv\Scripts\python.exe "C:/Users/sku1-1/PycharmProjects/untitled/day24 01 初识继承.py"
(<class '__main__.A'>,)
(<class '__main__.A'>, <class '__main__.B'>)
(<class '__main__.A'>, <class '__main__.B'>)
(<class 'object'>,)
(<class 'object'>,) Process finished with exit code 0
从上面的运行结果可以看到,特别的父类A和B的父类都是‘object’,如果没有继承父类,就默认继承‘object’,这也是python3的新式类
三、继承表达的关系:什么是什么的关系
只有是两个类之间才会产生继承的关系,两个类之间存在一些共同的抽象的东西,将这些共同的东西抽象出来就可以成为这两个类的父类
以之前的人狗大战的游戏为例,里面的人物角色与狗的角色,定义它们的类的时候,里面有一些属性是相同的,比如:name,blood,aggr,而且狗和人都是动物,这样就可以抽象出它们的父类---animal,参考以下代码:
class animal: # 父类
def __init__(self,name,blood,aggr):
self.name=name
self.blood=blood
self.aggr=aggr
class dog(animal): # 子类
def bite(self,someone):
someone.blood-=self.aggr
class someone(animal): # 子类
def attack(self,dog):
dog.blood -=self.aggr dog1 = dog('溜溜球',200,500)
print(dog1.name)
person1 = someone('王昭君',300,500)
print(person1.name)
运行结果:
溜溜球
王昭君
day24 01 初识继承的更多相关文章
- python 全栈开发,Day19(组合,组合实例,初识面向对象小结,初识继承)
一.组合 表示的一种什么有什么的关系 先来说一下,__init__的作用 class Dog: def __init__(self, name, kind, hp, ad): self.name = ...
- TensorFlow --- 01初识
由于博客园对Markdown支持不够友好,阅读此文请前往云栖社区:TensorFlow --- 01初识
- day24 02 单继承(派生)
day24 02 单继承(派生) 1.首先来看一个简单的例子 比如: 狗类的属性有:吃,喝,看门 鸟类的属性有:吃,喝,下蛋 看门和下蛋就是这两种动物不同的属性,而吃喝是两个共同的属性 以下代码实现了 ...
- day22 01 初识面向对象----简单的人狗大战小游戏
day22 01 初识面向对象----简单的人狗大战小游戏 假设有一个简单的小游戏:人狗大战 怎样用代码去实现呢? 首先得有任何狗这两个角色,并且每个角色都有他们自己的一些属性,比如任务名字nam ...
- day24 03 多继承
day24 03 多继承 正常的代码中 单继承==减少了代码的重复 继承表达的是一种 子类是父类的关系 1.简单的多继承关系 A,B,C,D四个类,其中D类继承A,B,C三个父类,因此也叫多继承,子 ...
- 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字
081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...
- 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则
080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...
- 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象
079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...
- 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类
078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...
随机推荐
- Codeforces 185D(发现性质、欧拉定理)
学到的东西 不知道gcd时不妨先假设为d,然后为了满足全部式子说不定可以得到d的取值范围. 幂上带幂考虑欧拉定理的使用. 有几个特殊情况会破坏公式的完美不要紧,看看特殊情况是否能简便地判定. 连乘公式 ...
- AtCoder Regular Contest 082 ABCD
A #include<bits/stdc++.h> using namespace std; ]; int n,m; int main(){ cin>>n>>m; ...
- 2019-CCPC广东省赛总结
2018年11月第一次参加ICPC区域赛青岛赛区,打铁了! 2019年5月第一次参加CCPC广东省赛,4题滚粗,C题莫队TLE13发,只拿了个铜牌! 教训总结: 比赛时千万不能犹豫,不能犹豫,不能犹豫 ...
- P2737 [USACO4.1]麦香牛块Beef McNuggets 数学题 + 放缩思想
https://www.luogu.org/problem/show?pid=2737#sub 先说一个结论:对于两个数p, q,且gcd(p, q) = 1(这个很重要,是条件来的).他们不能组合成 ...
- MySQL 实现字符串换行
target_describe字段值中包含 :[ 这两个特殊的字符 ,想要在字符之间加换行 需要插入CHAR(10) ),'[')) UPDATE ew_pm_project_red_detail S ...
- 微信小程序tabBar显示问题
在微信小程序的开发中,我遇到疑惑如下: 在app.json中定义了多个pages,一般微信小程序启动的时候,自动加载pages下的第一个页面, "pages": [ ...
- 洛谷P1081 开车旅行70分
https://www.luogu.org/problem/show?pid=1081 太遗憾了明明写出来了,却把最小值初始值弄小了,从第二个点开始就不可能对了.70分! #include<io ...
- Flask 学习系列(四)---Jinjia2 模板继承
1.基模板 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- fastjson格式化输出内容
引入fastjson <!--fastjson--><dependency> <groupId>com.alibaba</groupId> <ar ...
- mongodb的创建删除数据库
1.创建数据库 use 命令 MongoDB use DATABASE_NAME 用于创建数据库.该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库. 语法: use DATABASE ...