1. #写一个类SchoolMember
  2. class SchoolMember(object):
  3. member_num = 0
  4. def __init__(self,name,age,sex):
  5. self.name = name
  6. self.age = age
  7. self.sex = sex
  8. self.reg()
  9. # self.member_num += 1
  10. def reg(self):
  11. SchoolMember.member_num += 1
  12. print("SchoolMember[%s] is come to school,SchoolMember [%s] is already registered" %(self.member_num,self.name))
  13. def tell(self):
  14. print("hello,my name is [%s],and my age is [%s]" %(self.name,self.age))
  15.  
  16. #写一个SchollMember的子类teacher
  17. class Teacher(SchoolMember):
  18. def __init__(self,name,age,sex,course,salary):
  19. super(Teacher,self).__init__(name,age,sex)
  20. self.course = course
  21. self.salary = salary
  22. def teaching(self):
  23. print("Teacher [%s] is teaching [%s]" %(self.name,self.course))
  24.  
  25. class Student(SchoolMember):
  26. def __init__(self,name,age,sex,course,xufei):
  27. super(Student,self).__init__(name,age,sex)
  28. self.course = course
  29. self.xufei = xufei
  30. def pay_money(self):
  31. print("student [%s] must pay [%s] to school" %(self.name,self.xufei))
  32.  
  33. #首先分别创建2个teacher的实例和2个student的实例
  34.  
  35. print("首先分别创建2个teacher的实例和2个student的实例")
  36. t1 = Teacher("teacher1","12","M","python","123")
  37. t2 = Teacher("teacher2","13","M","shell","234")
  38. s1 = Student("Student1","1","W","python","1234")
  39. s2 = Student("Student2","2","M","shell","12345")
  40.  
  41. # 首先分别创建2个teacher的实例和2个student的实例
  42. # SchoolMember[1] is come to school,SchoolMember [teacher1] is already registered
  43. # SchoolMember[2] is come to school,SchoolMember [teacher2] is already registered
  44. # SchoolMember[3] is come to school,SchoolMember [Student1] is already registered
  45. # SchoolMember[4] is come to school,SchoolMember [Student2] is already registered
  46.  
  47. print("teacher调用父类SchoolMember的方法tell")
  48. t1.tell()
  49. t2.tell()
  50.  
  51. # teacher调用父类SchoolMember的方法tell
  52. # hello,my name is [teacher1],and my age is [12]
  53. # hello,my name is [teacher2],and my age is [13]
  54.  
  55. print("teacher实例调用teacher类的方法")
  56. t1.teaching()
  57. t2.teaching()
  58.  
  59. # teacher实例调用teacher类的方法
  60. # Teacher [teacher1] is teaching [python]
  61. # Teacher [teacher2] is teaching [shell]
  62.  
  63. print("student调用父类SchoolMember的方法tell")
  64. s1.tell()
  65. s2.tell()
  66.  
  67. # student调用父类SchoolMember的方法tell
  68. # hello,my name is [Student1],and my age is [1]
  69. # hello,my name is [Student2],and my age is [2]
  70.  
  71. print("student实例调用student类的方法")
  72. s1.pay_money()
  73. s2.pay_money()
  74.  
  75. # student实例调用student类的方法
  76. # student [Student1] must pay [1234] to school
  77. # student [Student2] must pay [12345] to school

  

python之面向对象之继承的更多相关文章

  1. python之面向对象(继承)

    类的继承 python之面向对象(继承) 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法 c ...

  2. Python之面向对象:继承

    概念:子类继承父类的属性和方法. 一个派生类(derived class)继承基类(bass class)字段和方法.继承也允许把一个派生类的对象作为一个基类对象对待. 一.单继承 :推崇.特点和使用 ...

  3. python基础--面向对象之继承

    # 继承是一种创建新类的方式,新建的类可以继承一个,或者多个父类, # 父类又可以称为基类或者超类,新建的类可以称为派生类,子类 class ParentClass1: # 定义父类 1 pass c ...

  4. Python 面向对象编程 继承 和多态

    Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: c ...

  5. python面向对象编程 继承 组合 接口和抽象类

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

  6. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

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

  7. python语法学习面向对象之继承

    python语法学习面向对象之继承 转载自:http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html 只要涉及到面向对象,”类“是必须出 ...

  8. 转 python语法学习面向对象之继承

    传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始 ...

  9. Python之面向对象继承和派生

    Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...

随机推荐

  1. js将UTC时间转化为当地时区时间

    js将UTC时间转化为当地时区时间(UTC转GMT)   我们在进行网站开发的时候有可能会涉及到国外的用户或者用户身在国外,这时就会存在时差问题,比如说我们在中国的时间是08:00,但是此时韩国的时间 ...

  2. js 下关于json的销毁和添加

    var json={a:1,b:2} 现在给json添加个c,可以这样写 json.c=3或json["c"]=3 我删除一个属性 delete json.a alert(json ...

  3. 「CQOI2016」K 远点对

    /* 考虑暴力 可以n ^ 2枚举点对 然后用一个容量为2k的小根堆来维护第k大 kd-tree呢就是来将这个暴力优化, 每次先找远的并且最远距离不如堆顶的话就不继续找下去 貌似挺难构造数据卡的 */ ...

  4. Python数据分析_Pandas01_数据框的创建和选取

    主要内容: 创建数据表 查看数据表 数据表索引.选取部分数据 通过标签选取.loc 多重索引选取 位置选取.iloc 布尔索引 Object Creation 新建数据 用list建series序列 ...

  5. UML 中关系图的解说

    最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有些概念还是经常被混淆的,写在这里是为了加深印象. 关系列表: 继承关系(Generalization): 实现关系 ...

  6. Convolutional Neural Networks

    卷积神经网络(Convolutional Neural Networks/ CNN/ConvNets) 卷积神经网络和普通神经网络十分相似: 组成它们的神经元都具有可学习的权重(weights)和偏置 ...

  7. json , 正则

    json: import json user = { 'dsada': 'whichT','a':True,'b':None } a=json.dumps(user,indent=3,sort_key ...

  8. Spring MVC 重定向

    @RequestMapping("/testRedirect") public String testRedirect(){ System.out.println("te ...

  9. as3 连接mysql

    http://www.cnblogs.com/yili16438/archive/2011/04/23/2025936.html

  10. c++变量声明、定义,const变量

    变量声明和定义的主要区别: 声明不分配存储空间,定义分配存储空间. 变量可以声明多次,但只能定义一次(一个变量只能在一个源文件中定义) 声明通常放在头文件(.h)中,定义放在源文件(.cpp)中 变量 ...