- A+
一、类和方法
类:属性和方法的集合
私有属性 就是 对象 不希望公开的 属性、私有方法 就是 对象 不希望公开的 方法
1 2 3 4 5 6 7 8 |
class User: def __si(self): print("私有方法") def printSi(self): self.__si() u=User() # u.__si() # u.si() u.printSi() |
二、继承
继承: 子类继承父类的一般属性和方法,(私有的属性和方法不能被继承)
好处:代码复用性
单继承:
1 2 3 |
class A: pass class B(A): pass |
特点:单继承 多层次
多继承:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#爷爷 class A: moneyA=1000 #父亲 class B(A): moneyB=-1000 #你 class C(B): moneyC =10000 def showMoney(self): print(self.moneyA+self.moneyB+self.moneyC) c=C() c.showMoney() b=B() print("B:",b.moneyA+b.moneyB) |
父类方法正常,被子类继承,但是子类方法有改变的是需要重写
特点:多继承 多层次
重写:
1 2 3 4 5 6 7 8 9 10 11 12 |
class Animal: def run(self): print("4条腿") class Person(Animal): def run(self): print("两条腿") class Cat(Animal): pass p=Person() p.run() c=Cat() c.run() |
self: 代表当前类的对象
self.属性
self.方法()
super:在子类中代表父类的对象
A:父类 B:子类 super :特派员
super().属性
super().方法()
super().init() 父类
1 2 3 4 5 6 7 8 9 10 |
class A: def __init__(self,name=""): self.name=name def show(self): print(self.name) class B(A): def __init__(self,name=""): super().__init__(name) b=B("大雁") b.show() |
特点:先实例化父类 再实例化子类
三、多态
定义:实现同一个接口,不同对象执行不同结果
举例:
榨汁机 传入:苹果 苹果汁
传入:西瓜 西瓜汁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class Apple(Zhazhiji): def __init__(self,type=""): super().__init__(type) def start(self): super().start() class Banana(Zhazhiji): def __init__(self,type=""): super().__init__(type) def start(self): super().start() def zonghe(s): s.start() a=Apple("苹果") b=Banana("香蕉") zonghe(a) zonghe(b) |
前提:继承 重写方法
好处:可扩展性 可维护性
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫