Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1077854
  • 博文数量: 120
  • 博客积分: 887
  • 博客等级: 准尉
  • 技术积分: 1883
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-05 21:10
个人简介

RHCE,CCNA,熟悉shell脚本

文章分类

全部博文(120)

文章存档

2015年(16)

2014年(20)

2013年(48)

2012年(20)

2011年(16)

分类: Python/Ruby

2014-01-17 13:25:39


点击(此处)折叠或打开

  1. 继承
  2.     当多个类被设计完成时,一般都会有类与类之间的相互关系;
  3.     类之间存在继承,组合,依赖等关系;
  4.     继承是面向对象的中药特性之一;
  5. 继承关系:继承是相对两个类而言的父子关系,子类继承了父类的所有公有属性和方法;
  6.     继承实现了代码的重用

  7. 使用继承:
  8. 继承可以重用已经存在的数据和行为,减少代码的重复编写,Python在类名后使用一堆括号来表示继承的关系,括号中的类即为父类。
  9. 格式:
  10.     class Myclass(parentClass)
  11. 注意:
  12.     如果父类定义了__init__方法,子类必须显示调用父类的__init__方法("baseClass.__init__(self,[args...])")
  13.     如果子类需要扩展父类的行为,可以天剑__init__方法的参数;

  14. python支持多重继承,即一个类可以继承多个父类;
  15. 多重继承的语法格式:
  16.     class_name(parent_class1,parent_class2....)
  17. 注意:
  18.     当父类中出现多个自定义的__init__方法时,多重继承只执行第一个类的__init__方法,其他不执行。
  19.     继承只是继承第一个父类,后面就算有很多父类,也不会执行继承

  20. #coding:utf-8
  21. #简单的子类继承父类
  22. class Parent():
  23.     def fun(self):
  24.         print "wo shi fu lei"

  25. class Myclass(Parent):
  26.     def func(self):
  27.         print "wo shi zi lei"

  28. test = Myclass()
  29. test.fun()
  30. test.func()
  31. ====================================================
  32. #coding:utf-8
  33. #一个父类多个子类+子类重写父类属性
  34. class Ren():
  35.     name = "ren lei"

  36.     def say(self):
  37.         print "hui shuo hua"
  38. '''
  39. 。。。。。代码重复。。。。。。
  40. class Chiness():
  41.     name = "zhong guo ren"
  42.     
  43.     def say(self):
  44.         print "会说话"
  45. '''

  46. class Chinese(Ren):
  47.     pass

  48. class england(Ren):
  49.     pass

  50. class un(Ren):
  51.     name = "U.S.A"
  52.     
  53.     def say(self):
  54.         print "hui shuo ying yu"

  55. zhang = Ren()
  56. print zhang.name
  57. zhang.say()

  58. zhangsan= Chinese()
  59. print zhangsan.name
  60. zhangsan.say()

  61. lisi= england()
  62. print lisi.name
  63. lisi.say()

  64. # 子类重写父类的属性,其实就是承载的概念
  65. wangwu= un()
  66. print wangwu.name
  67. wangwu.say()
  68. ===================================================
  69. #coding:utf-8
  70. # 一个子类继承多个父类
  71. class Ren():
  72.     name = "ren lei"
  73.     high = "HHHH"

  74.     def say(self):
  75.         print "hui shuo hua"

  76. class AN():
  77.     name = "dong wu"

  78. class england(AN): #继承AN类
  79.     pass

  80. class Chinese(AN,Ren): #继承AN类和Ren类
  81.     pass

  82. class UN(Ren,AN): #继承Ren类和AN类
  83.     pass

  84. # 继承只是继承第一个父类,后面就算有很多父类,也不会执行继承

  85. lisi = england()
  86. print lisi.name

  87. zhangsan= Chinese()
  88. print zhangsan.name

  89. wangwu= UN()
  90. print wangwu.name

  91. ================================================
  92. #coding:utf-8
  93. #初始化方法
  94. class Ren():
  95.     high = "HHHH"

  96.     def __init__(self):
  97.         self.name = "RRRRRRRRRRR"

  98.     def say(self):
  99.         print "hui shuo hua"

  100. class AN():
  101.     def __init__(self):
  102.         self.name = "AAAAAAAA"

  103. class england(AN): #继承AN类
  104.     pass

  105. class Chinese(AN,Ren): #继承AN类和Ren类
  106.     pass

  107. class UN(Ren,AN): #继承Ren类和AN类
  108.     pass

  109. class EE(Ren,AN):
  110.     # name = "wo jiao EE"
  111.     ''' #虽然继承了Ren和AN,但自己有初始化方法,那就会先执行自己的初始化方法,如果
  112.     没有就执行第一个父类的,再没有就执行下一个父类的,以此类推,都没有就报错'''
  113.     def __init__(self):
  114.         self.name = "shanghai"
  115.         
  116. class DD(Ren,AN):
  117.     # name = "wo jiao DD"
  118.     ''' #虽然继承了Ren和AN,但自己有初始化方法,那就会先执行自己的初始化方法,如果
  119.     没有就执行第一个父类的,再没有就执行下一个父类的,以此类推,都没有就报错'''
  120.     def __init__(self):
  121.         self.test = "jiangsu"
  122.         Ren.__init__(self)
  123.         AN.__init__(self)

  124. # 初始化方法只是继承第一个父类的,后面就算有很多初始化方法,也不会执行继承

  125. lisi = england()
  126. print lisi.name

  127. zhangsan= Chinese()
  128. print zhangsan.name

  129. wangwu= UN()
  130. print wangwu.name

  131. zhaoliu=EE()
  132. print zhaoliu.name

  133. xiaoming=DD()
  134. print xiaoming.name # name没有在DD中,调用父类

阅读(1601) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~