python面向对象的三大特征--继承
#什么时候用继承
#1.当类之间有显著不同,并且较小的类是较大的类所需的组件时,用组合比较好
#2.当类之间有很多相同的功能,提供这些共同的功能做成基类,用继承比较好 class Dad: "这个是爸爸类"
money=10 def __init__(self,name):
print("爸爸")
self.name=name def hit_son(self):
print("%s 正在打儿子" %self.name) class Son(Dad):
money = 10000000
#当子类中有跟父类属性同名的数据属性或者方法属性时会覆盖父类中的属性,当子类中没有时会优先调用父类方法
def __init__(self,name,age):
self.name=name
self.age=age def hit_son(self):
print("来自儿子类",self.name) #print(Son.money)
#Son.hit_son() # print(Dad.__dict__)
# print(Son.__dict__) # s1=Son("TANG")
#
# print(s1.name)
# print(s1.money)
# s1.hit_son() #现在子类查找自己的init方法 s1=Son("alex","")
s1.hit_son() # print(Son.money)
# print(Dad.money)
#使用abc模块实现子类必须实现基类的方法
import abc
#接口继承 class All_file(metaclass=abc.ABCMeta):
@abc.abstractmethod def read(self):
pass @abc.abstractmethod
def write(self):
pass #接口:接口就是一个函数,接口继承:定义一个基类,基类当中把自己的方法定义成基类函数,来一个子类继承他就必须实现基类的方法
#使用abc模块实现子类必须实现基类的方法 class Disk(All_file): def read(self):
print("disk read") def write(self):
print("disk write") class Cdroom(All_file):
def read(self):
print("cdrom read") def write(self):
print("cdrom write") class MEm(All_file):
def read(self):
print("Mem read") def write(self):
print("Mem write") def sad(self):
print("jjj") m1=MEm()
# m1.sad()
# m1.read()
# m1.write() #继承顺序:1.python2:分经典类和新式类 经典类指不继承基类object的类,新式类继承基类object的类
2.python3:默认为新式类即默认继承object基类
3.经典类默认是深度有限的继成顺序,新式类默认是广度优先的继承顺序,新式类中可以使用类属性.__mro__查看类的继承顺序
class A:
def test(self):
print("A") #当类是新式类是继承查找顺序为广度优先 class B(A):
def test(self):
print("B") class C(A):
def test(self):
print("C") class D(B):
def test(self):
print("D") class E(C):
def test(self):
print("E") class F(D,E):
pass
# def test(self):
# print("F") f1=F()
f1.test()#F--->D---->B ---->E---->C---->A print(F.__mro__)
#python到底是如何实现继承的,对于你定义的每一个类,python会计算出一个方法解析顺序(MRO)元祖,这个MRO
#列表就是一个简单的,所有基类的线性顺序元祖,python3默认继承object基类
python面向对象的三大特征--继承的更多相关文章
- python面向对象的三大特征--继承子类调用父类方法
#在子类中调用父类方法 class Vehicle: country="China" def __init__(self,name,speed,load,power): self. ...
- Python面向对象初始(三大特征,多态,继承,封装)
Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...
- python 面向对象的三大特征之 继承
#继承 #object 基类,是python定义的所有类的父类 #经典类:不继承object的类称作经典类 #新式类:继承object的类称作新式类 #python 3.x统一为新式类 #经典类是类对 ...
- Python面向对象的三大特征 --- 封装、继承、多态
一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person(): def _ ...
- python面向对象的三大特征
1.封装: 封装就是对类和对象的成员访问进行限制,设定可以访问的方式和不可以访问的方式. 分类: 私有化的封装:当前类/对象种可以使用,类/对象外和子类/对象都不可以用 受保护的封装:当前类/对象和子 ...
- python面向对象的三大特征--多态
#什么是多态:由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同 #多态体现在由一个类实例化出多个对象,这些对象执行相同的方法时,执行的过程和结果不一样--不同的对象调用相同的方法 #多态的概 ...
- python面向对象的三大特征--封装
#coding:utf-8 __author__="tang" #第一个层面的封装:类就是麻袋,本身就是一种封装 #第二个层面的封装:类中定义私有的,只在类的内部使用,外部无法访问 ...
- python 面向对象的三大特征之 封装
封装:私有化 class Person(object): def __init__(self): self.__gender = "man" #在类的属性名称前面加__ self. ...
- C#学习笔记7:多态是面向对象的三大特征(封装、继承、多态)之一
多态: 多态是面向对象的三大特征(封装.继承.多态)之一. 什么是多态? 一个对象表现出多种状态. 多态的实现方法: 1.虚方法: 2.抽象方法: 3.接口. PS:New 关键词可以隐藏父类的方法. ...
随机推荐
- Solr搜索引擎基础
搜索引擎是指一个庞大的互联网资源数据库,如网页,新闻组,程序,图像等.它有助于在万维网上定位信息. 用户可以通过以关键字或短语的形式将查询传递到搜索引擎中来搜索信息. 搜索引擎然后搜索其数据库并向用户 ...
- Spring Boot 异步方法的调用
Spring Boot 异步方法的调用 参考资料: 1.Spring Boot中使用@Async实现异步调用 使用方法 两个步骤: 1.开启配置 @EnableAsync,这一步特别容易忘记,导致测试 ...
- bytesToSize
export function bytesToSize(bytes){ if (bytes === 0) return '0 B' let k = 1024, // or 1000 sizes = [ ...
- el-date-picker用法
需求:1.默认时间是当天开始到此刻的时间 2.快捷键为今天.昨天.最近一周.最近30天.最近90天 3.不可以清空,必选项
- 自定义控件 - 流式布局:TagFlowLayout
在项目中需要用到流式布局的样式,此文学习鸿洋大神的FlowLayout控件,学习使用一下.出自 http://blog.csdn.net/lmj623565791/article/details/38 ...
- spring集成mongodb通过aop记录业务日志
1. 编辑 pom.xml 添加 maven 依赖 <!-- mongodb --> <dependency> <groupId>org.mongodb</g ...
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_05 List集合_3_LinkedList集合
链表实现,查询慢,增删快 addFirst 集合的开头添加 push等效于addFirst addLast getFirst和getLast clear 清空后 又输出 isEmpty 不为空才去获取 ...
- 测开之路八十九:HTML之图片处理
<!--width.height设置图片尺寸 alt:当图片不能展示时,显示的内容 title:鼠标放上去时展示的内容--> <img src="../imges/img0 ...
- ora-01033,ORA-16038
ORA-01033: ORACLE initialization or shutdown in progress 1.进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID:2 ...
- C# datatable 导出到Excel
datatable导出到Excel /// <summary> /// 将DataTable导出为Excel文件(.xls) /// </summary> /// <pa ...