python——面向对象(2)继承与多态

在Python中,继承是一种基于已存在的类来创建新类的方式。这种机制允许我们定义一个通用的类,然后基于这个类来定义一些特定的类,这些特定的类将继承通用类的属性和方法,同时也可以添加或覆盖一些新的属性和方法。这种方式极大地提高了代码的重用性和可扩展性。

继承的基本语法

在Python中,使用冒号(:)来表示类之间的继承关系。子类(或派生类)在定义时,将其父类(或基类)的名字放在括号中。
实例

class Parent:
    def __init__(self, name):
        self.name = name
    def greet(self):
        print(f"Hello,{self.name}!")

class Child(Parent):
    def __init__(self,name,age):
        super().__init__(name)
        self.age =age

    def greet(self):
        super().greet()
        print(f"I'm {self.age} years old.")

if __name__ == '__main__':
    child_instance = Child("john",10)
    child_instance.greet()
#输出结果:
#Hello,john!
#I'm 10 years old.

继承的特点

  • 代码重用:继承允许子类直接使用父类中的属性和方法,无需重新编写相同的代码。
  • 扩展性:子类可以在继承父类的基础上添加新的属性和方法,或者覆盖(重写)父类中的方法以提供特定的实现。
  • 多态性:继承是实现多态性的基础。多态性允许我们将子类的对象当作父类的对象来使用,同时保持子类的特定行为。

继承的类型

  • 单继承:子类只继承一个父类。上面的例子就是单继承的示例。
  • 多继承:子类继承多个父类。在Python中,可以使用逗号分隔多个父类来实现多继承。
    实例
class A:
    def method_a(self):
        print("Method A")

class B:
    def method_b(self):
        print("Method B")

class C(A, B):
    pass

c_instance = C()
c_instance.method_a() # 调用A类方法
c_instance.method_b() # 调用B类方法
# 输出结果:
#Method A
#Method B

多态

多态的本质在于同一函数接口(即方法)在接受不同的类型参量时表现出不同的行为。这得益于面向对象编程中的继承机制,子类可以继承父类的方法,并根据需要重写这些方法,从而在调用时展现出不同的行为。
实例:

class Animal(object):
    def __init__(self, leg, height):
        self.leg = leg
        self.height = height
    def run(self):
        print("Animal is run")
class Dog(Animal):
    def __init__(self, leg, height, bark):
        super().__init__(leg, height)
        self.bark = bark
    def run(self):
        print("dog is running")
class Cat(Animal):
    def __init__(self, leg, height, jump):
        super().__init__(leg, height)
        self.jump = jump
    def run(self):
        super().run()
        print("cat is running")
def run_twice(animal:Animal):
    animal.run()
    animal.run()
if __name__ == '__main__':
    animal = Animal(4,1)
    snoopy = Dog(3,1.2,"wnagwang")
    tom = Cat(2,1.1,1.8)
    run_twice(animal)
    run_twice(snoopy)
    run_twice(tom)
#输出结果:
#dog is running
#dog is running
#Animal is run
#cat is running
#Animal is run
#cat is running

多态是编程中一种强大的特性,它允许程序员编写出更加灵活、可重用和可扩展的代码。通过多态,可以实现不同对象对同一消息的不同响应,从而满足复杂的编程需求。

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值