Python面向对象程序设计之继承、多态原理与用法

1.继承的概念和特点

在面向对象的编程中,继承是不可或缺的一个概念。继承是指一个类(称为子类)继承另一个类(称为父类)的特性。

子类可以重写或添加父类的属性、方法,也可以自定义属性与方法。当子类继承父类后,子类会自动拥有父类的一些属性和方法。子类可以通过继承父类的方式简化代码,提高代码的可读性,同时降低代码的复杂度。

继承的特点:

子类继承了父类的所有属性和方法。

子类可以重写或添加父类的方法。

子类可以自定义属性和方法。

子类在继承父类的同时,也可以继承父类的继承关系。

1.1 继承的语法

在 Python 中,使用以下方式实现继承:

class 父类名:

# 父类属性和方法的定义

class 子类名(父类名):

# 子类属性和方法的定义

注意:子类在定义时需要继承父类,继承时需要在子类名后面跟上父类名。

1.2 继承的实例

以下代码示例展示了 Sports 类作为 Person 类的子类,继承了 Person 类的私有属性 name,以及 Person 类的 show_info() 方法,同时增加了自己的 run() 方法:

class Person:

def __init__(self, name):

self.__name = name

def show_info(self):

print('我是 Person,我的名字是 %s' % self.__name)

class Sports(Person):

def __init__(self, name):

Person.__init__(self, name)

def show_info(self):

print('我是 Sports,我的名字是 %s' % self._Person__name)

def run(self):

print('我在跑步!')

p = Person('Tom')

p.show_info()

s = Sports('Lucy')

s.show_info()

s.run()

输出结果:

我是 Person,我的名字是 Tom

我是 Sports,我的名字是 Lucy

我在跑步!

从输出结果可以看出,子类 Sports 继承了父类 Person 的 __name 属性和 show_info() 方法,并添加了自己的 run() 方法。

2.多态的概念和特点

多态是指不同的对象对同一消息作出不同的响应。如果多个类都有同名的方法,我们可以通过多态来调用它们。多态可以通过子类继承父类或者实现接口来实现。

多态的好处:

可以提高代码的可重用性,利于代码的维护。

可以通过统一的方式调用不同类的同名方法,减少了代码的耦合性。

2.1 多态的语法

在 Python 中,实现多态需要注意以下几点:

父类中要定义同名的方法。

子类中必须重写父类的同名方法。

注意:Python 中不存在严格的类型检查,所以实现多态相对来说比较自由。

2.2 多态的实例

以下代码示例展示了多态的使用:

class Animal:

def sound(self):

pass

class Dog(Animal):

def sound(self):

print('汪!')

class Cat(Animal):

def sound(self):

print('喵!')

def run(animal):

animal.sound()

dog = Dog()

cat = Cat()

run(dog)

run(cat)

输出结果:

汪!

喵!

从输出结果可以看出,通过统一的方式调用不同类的同名方法 sound(),在不同的实例中产生了不同的响应。

3.总结

继承和多态是面向对象的重要概念之一,它们可以大大提高代码的可读性和可维护性,从而提高代码的效率。在编写面向对象的程序时,必须深入理解继承和多态的原理和用法,才能写出高质量的面向对象的程序。

后端开发标签