理解:子类的对象也是属于父类的对象的类型。
我们可以通过以下代码来加深理解:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def print_age(self):
print ( "%s's age is %s" % (self.name, self.age))
class Man(Person):
def print_age(self):
print ( "Mr. %s's age is %s" %(self.name, self.age))
class Woman(Person):
def print_age(self):
print ( "Ms. %s's age is %s" %(self.name, self.age))
def person_age(person):
person.print_age()
person = Person( "kevin" , 23)
man = Man( "Bob" , 33)
woman = Woman( "Lily" , 28)
person_age(person)
person_age(man)
person_age(woman)
|
以上代码执行结果如下:
1
2
3
|
kevin's age is 23
Mr. Bob's age is 33
Ms. Lily's age is 28
|
在以上代码中函数 person_age 函数的输入参数为类 Person 的实例,但是在实际执行过程中 Person 的子类 Man 和 Woman 的示例同样可以在 person_age 函数中正常运行,因为子类的对象也属于父类的对象类型。这既是类的多态的作用。。