单继承

  1 '''
  2 继承解释:
  3 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法
  4 之一是通过继承机制。
  5 通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
  6 作用:为了简化代码量,更好的维护。
  7 
  8 
  9 特点:
 10 子类可以继承父类的所有属性及方法(私有属性/方法除外)
 11 子类是可以直接使用父类的公有方法的。
 12 子类是可以有自己独有的方法/属性。
 13 
 14 注意:
 15 __init__:当子类没有显式的init方法时,会调用父类的init方法。
 16         当子类有显式的init方法时,会调用子类本身的init方法。
 17         当子类有显式的init方法时,可能会导致父类中init方法中的内
 18         容无效,在子类的init方法中调用父类的init函数,将父类中的
 19         init函数中的内容继承下来,格式:
 20         父类名称.__init__(self, 参数1,参数2...(参数个数与形参个数一致))
 21 
 22 函数/方法重写:在子类中有与父类同名的函数,并在子类中实现了该方法,
 23 叫做方法的重写。
 24 
 25 就近原则:当对象调用属性或方法时,先去自己本类=中查找,找到则
 26 使用自己本类中的内容,本类中没有,再去父类中查找,一层一层向上查找,
 27 如果本类及所有父类中都没有,则返回错误。
 28 
 29 一个父类可以拥有多个子类。
 30 
 31 '''
 32 '''
 33 语法格式:
 34 class 类名(父类):
 35     属性
 36     方法
 37 '''
 38 # Cat  color age  miao  eat()   zhuolaoshu()
 39 # Dog  color age  wang  eat()   kanjia()
 40 # Animal  color age eat()
 41 
 42 '_Cat__an'
 43 
 44 # 父类
 45 class Animal():
 46     def __init__(self, color, age):
 47         self.color = color
 48         self.age = age
 49         self.__an = "1000"
 50     def eat(self):
 51         # print(self.__an)
 52         print("吃饭")
 53     def __body(self):
 54         print("身体")
 55 
 56 class Cat(Animal):
 57     def __init__(self, color, age, miao):
 58         # self.color = color
 59         # self.age = age
 60         # 调用父类的init方法:
 61         # 语法格式: 父类名称.__init__(self, 参数1,参数2...(参
 62         # 数个数与形参个数一致))
 63         # 类似将父类的init方法中的所有内容复制并执行
 64         Animal.__init__(self, color, age)
 65         # 子类独有的属性
 66         self.miao = miao
 67 
 68     def eat(self):
 69         # print("吃饭")
 70         # 在子类中执行父类的方法
 71         # 语法格式: 父类名称.函数名(self, 参数1,参数2...(参
 72         # 数个数与形参个数一致))
 73         Animal.eat(self)
 74 
 75         print(self.miao + "吃饭")
 76 
 77     # 子类独有的方法
 78     def zhuolaoshu(self):
 79         # print(self.color)
 80         print("猫捉老鼠")
 81 
 82 cat1 = Cat("白色", 10, "喵喵")
 83 # print(cat1.color)
 84 # print(cat1.age)
 85 # print(cat1.miao)
 86 cat1.eat()
 87 # cat1.zhuolaoshu()
 88 
 89 
 90 class Dog(Animal):
 91     def __init__(self, color, age, wang):
 92         # self.color = color
 93         # self.age = age
 94         Animal.__init__(self, color, age)
 95         self.wang = wang
 96     def eat(self):
 97         Animal.eat(self)
 98         print(self.wang + "吃饭")
 99     def kanjia(self):
100         print("狗狗看家")
101 dog1 = Dog("aaa", 12, "wwww")
102 print(dog1.color, dog1.age, dog1.wang)
103 dog1.eat()
104 dog1.kanjia()
105 # cat1 = Cat("白色", 12, "喵喵")
106 # dog1 = Dog("黑色", 8, "汪汪")
107 # cat1.eat()
108 # cat1.zhuolaoshu()
109 # dog1.eat()
110 # dog1.kanjia()
111 
112 
113 """
114 object:所有类的父类:如果没有object,那么可能所有的类都不
115 存在。我们所创建的所有的类,默认都继承于object。如果我们创
116 建的class,就是继承于object,那么object写或不写没有区别。
117 """
118 
119 # class Person:
120 #     pass
121 # class Person():
122 #     pass
123 
124 class Person(object):
125     pass

 

posted @ 2019-07-31 19:50  巨菜的小鸟  阅读(182)  评论(0编辑  收藏  举报