VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • python基础(24):面向对象三大特性一(继承)(3)

name = name # 人和狗都有自己的昵称;
  • self.aggressivity = aggressivity # 人和狗都有自己的攻击力;
  • self.life_value = life_value # 人和狗都有自己的生命值;
  •  
  • def eat(self):
  • print('%s is eating'%self.name)
  •  
  • class Dog(Animal):
  • '''
  • 狗类,继承Animal类
  • '''
  • def __init__(self,name,breed,aggressivity,life_value):
  • super().__init__(name, aggressivity, life_value) #执行父类Animal的init方法
  • self.breed = breed #派生出了新的属性
  •  
  • def bite(self, people):
  • '''
  • 派生出了新的技能:狗有咬人的技能
  • :param people:
  • '''
  • people.life_value -= self.aggressivity
  •  
  • def eat(self):
  • # Animal.eat(self)
  • #super().eat()
  • print('from Dog')
  •  
  • class Person(Animal):
  • '''
  • 人类,继承Animal
  • '''
  • def __init__(self,name,aggressivity, life_value,money):
  • #Animal.__init__(self, name, aggressivity, life_value)
  • #super(Person, self).__init__(name, aggressivity, life_value)
  • super().__init__(name,aggressivity, life_value) #执行父类的init方法
  • self.money = money #派生出了新的属性
  •  
  • def attack(self, dog):
  • '''
  • 派生出了新的技能:人有攻击的技能
  • :param dog:
  • '''
  • dog.life_value -= self.aggressivity
  •  
  • def eat(self):
  • #super().eat()
  • Animal.eat(self)
  • print('from Person')
  •  
  • egg = Person('egon',10,1000,600)
  • ha2 = Dog('二愣子','哈士奇',10,1000)
  • print(egg.name)
  • print(ha2.name)
  • egg.eat()
  • 通过继承建立了派生类与基类之间的关系,它是一种'是'的关系,比如白马是马,人是动物。

    当类之间有很多相同的功能,提取这些共同的功能做成基类,用继承比较好,比如教授是老师

    
    
    1. >>> class Teacher:
    2. ... def __init__(self,name,gender):
    3. ... self.name=name
    4. ... self.gender=gender
    5. ... def teach(self):
    6. ... print('teaching')
    7. ...
    8. >>>
    9. >>> class Professor(Teacher):
    10. ... pass
    11. ...
    12. >>> p1=Professor('egon','male')
    13. >>> p1.teach()
    14. teaching

    1.5 抽象类与接口类

    1.5.1 接口类

    继承有两种用途:

    一:继承基类的方法,并且做出自己的改变或者扩展(代码重用)  。

    二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能。

    
    
    1. class Alipay:
    2. '''
    3. 支付宝支付
    4. '''
    5. def pay(self,money):
    6. print('支付宝支付了%s元'%money)
    7.  
    8. class Applepay:
    9. '''
    10. apple pay支付
    11. '''
    12. def pay(self,money):
    13. print('apple pay支付了%s元'%money)
    14.  
    15. def pay(payment,money):
    16. '''
    17. 支付函数,总体负责支付
    18. 对应支付的对象和要支付的金额
    19. '''
    20. payment.pay(money)
    21.  
    22. p = Alipay()
    23. pay(p,200)

    开发中容易出现的问题:

    
    
    1. class Alipay:
    2. '''
    3. 支付宝支付
    
    相关教程