对象是特征(变量)与技能(函数)的结合体而是一系列对象共同的特征与技能的集合体
class teacher:lesson = "python"def __init__(self,name,color,age):  # 只干初始化的活self.name = nameif not isinstance(name,str):raise TypeErrorself.color = colorself.age = agedef jineng(self):print('新技能')t1 = teacher('as','pink',13)   # t1可以成为teacher类的一个实例,或对象

class teacher:# 特征school = 'oldboy'lesson_default = 'python'# 技能def __init__(self,name,age,sex,lesson2):self.name = nameself.age = ageself.sex = sexself.lesson2 = lesson2def speak(self):print('讲课')def eat(self):print('吃饭')t1 = teacher('alex','23','男','运维')
t2 = teacher('egon','24','男','运维')


类的用法一:实例化产生对象类的用法二:属性引用print(teacher.__dict__)

# 对象的属性# 类的属性

# 属性,就是一个字典# 对象查看一个属性,先从对象属性找,如果没有,就从类找
继承:继承是用来创建新的类的一种方式,好处是可以减少重复代码继承是类与类之间的关系,是一种什么是什么的关系
class People:def __init__(self,name,age,sex):self.name = nameself.age = ageself.sex = sexdef walk(self):print('%s is walking' %self.name)def foo(self):print('from father %s' %self.name)class Teacher(People):school = 'oldboy'def __init__(self,name,age,sex,level,salary):People.__init__(self,name,age,sex)self.level = levelself.salary = salarydef bar(self):People.foo(self)print('from teacher')class Student(People):passt = Teacher('egon',13,'male',10,3000)
# print(t.name,t.age)
print(t.__dict__)
t.walk()
t.bar()

组合组合是一种什么有什么的关系
class People:def __init__(self, name, age, year, mon, day):self.name = nameself.age = ageself.birth = Date(year, mon, day)   # 组合def walk(self):print('%s is walking' % self.name)class Date:def __init__(self, year, mon, day):self.year = yearself.mon = monself.day = daydef tell_birth(self):print('出生于<%s>年 <%s>月 <%s>日' % (self.year, self.mon, self.day))class Teacher(People):def __init__(self, name, age, year, mon, day, level, salary):People.__init__(self, name, age, year, mon, day)self.level = levelself.salary = salarydef teach(self):print('%s is teaching' % self.name)class Student(People):def __init__(self, name, age, year, mon, day, group):People.__init__(self, name, age, year, mon, day)self.group = groupdef study(self):print('%s is studying' % self.name)t = Teacher('egon', 12, 1991, 12, 12, 10, 1000)
t.teach()
t.walk()
print(t.level)
print(t.birth.tell_birth())


接口1.子类必须要有父类的方法2.子类实现的方法必须跟父类的方法的名字一样
class File:#定义接口Interface类来模仿接口的概念,python中压根就没有interface关键字来定义一个接口。def read(self): #定接口函数readpassdef write(self): #定义接口函数writepassclass Txt(File): #文本,具体实现read和writedef du(self):print('文本数据的读取方法')def xie(self):print('文本数据的读取方法')class Sata(File): #磁盘,具体实现read和writedef read(self):print('硬盘数据的读取方法')def write(self):print('硬盘数据的读取方法')class Process(File):def read(self):print('进程数据的读取方法')def write(self):print('进程数据的读取方法')txt=Txt()
disk=Sata()
process=Process()txt.du()
# disk.read()
# process.read()

子类实现的方法必须跟父类的方法的名字一样
import abcclass File(metaclass=abc.ABCMeta):@abc.abstractmethoddef read(self):pass@abc.abstractmethoddef write(self):passclass Txt(File):  # 文本,具体实现read和writedef read(self):passdef write(self):passt = Txt()

 
 

转载于:https://www.cnblogs.com/lucaq/p/7119185.html

python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法相关推荐

  1. java多态实现示例,以及子类重写父类方法调用父类方法

    多态 多态存在的三个必要条件:继承,重写,父类引用指向子类对象, 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则error:如果有,调用子类的同名方法. example: pack ...

  2. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  3. 面向对象之继承与派生

    阅读目录 一 初识继承 二 继承与抽象(先抽象再继承) 三 继承与重用性 四 派生 五 组合与重用性 六 接口与归一化设计 七 抽象类 八 继承实现的原理(可恶的菱形问题) 九 子类中调用父类的方法 ...

  4. 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )

    文章目录 类的继承 方法的重写 子类中调用父类方法 多态 虚函数 虚函数示例 纯虚函数 相关代码 类的继承 1. 继承表示 : C++ 中继承可以使用 ":" 符号 , 格式为 & ...

  5. (C++实例)实现people类、student类,teacher类、graduate类、助教类继承和派生并测试

    1.问题描述 共有以下 4小点 的类继承.派生关系: (1)从people(人员)类派生出student(学生)类,添加属性:班号char classNo[7]; (2)从people类派生出teac ...

  6. 【Python】继承、父类、子类、方法重写、子类调用父类方法、super()函数、多继承

    Python继承 2021/6/21 周一 学习内容:父类.子类.方法重写.子类调用父类方法.super()函数.多继承 Python入门,主要是看 菜鸟教程.w3school 网站,以及电子工业出版 ...

  7. 子类重写父类方法,调用时会调用子类重写之后的方法

    1, 以下代码执行的结果显示是多少( )? public class Demo {class Super{ int flag=1;Super(){test();}void test(){System. ...

  8. qt 子类调用父类的函数_子类调用父类方法

    当有相同的属性或者方法是this子类表示调用自己的属性或者方法, super调用父类的属性或者方法. 当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法 1.方式 ...

  9. C++——子类调用父类方法

    C++--子类调用父类方法 原创声明:本文系博主原创文章,转载或引用请注明出处. 1. 如果类B是类A的子类,则在类B的成员方法中调用类A的方法时,可以直接以 A::method(paramlist) ...

最新文章

  1. LTE MIBSIB1
  2. Linux而不必进入password登陆自己主动sshserver方法
  3. WKQ学习(后台知识)
  4. 【图片服务器】搭建Nginx图片服务器
  5. 数学不好的人可以学python吗_数学不好的人,适合学习深度学习,机器学习,人工智能吗?...
  6. yaml 数组_使用 YAML 保存游戏数据 !
  7. vb查询xml中特定节点下的标签_Python 标准库之XML
  8. php用jquery-ajax上传多张图片限制图片大小
  9. vue(vue-cli+vue-router)+babel+webpack项目搭建入门(四)
  10. java后端简历项目经历_java后台开发个人简历怎么写
  11. 典型的递归计算费氏数列
  12. 【2021应用上架】超详细开发者账号申请应用上架审核经验整理
  13. 爱上python系列------python上下文管理器(二):对suppress进行装饰器重新实现
  14. Hive Serde
  15. DM数据库常用系统视图及数据字典查询部分汇总
  16. 关于Windows在ping虚拟机时出现请求超时的解决问题
  17. DEJA_VU3D - Cesium功能集 之 090-台风过境实时动画
  18. Excel原封不动导入txt文件
  19. 大数据毕设选题 - 深度学习股票预测系统(python Django)
  20. Eclips中安装Git 插件

热门文章

  1. TopCoder中插件的用法
  2. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources
  3. 一道很简单却也很容易入坑的java面试题
  4. php中系统函数的特征,老鸟需要知道的一些php系统类函数
  5. 2018-05-16树莓派如何开启UART串口
  6. 使用GDAL对HDF数据进行校正
  7. java程序给输出汉字_java面试题目编写一个java程序,实现拼音转成对应汉字功能。...
  8. Java——IO基础
  9. 前端JAVASCRIPT模块化开发
  10. golang actor模型探索