一、Python支持多根继承
- Python允许多根继承,跟C++一样,一个类可以继承多个父类,即一子多父。
- 虽然Java语言不允许多根继承,只能继承一个父类,但是可实现多个父接口。
二、案例演示Python多根继承
- Student类继承Person类
- Test01类继承Speaker类与Student类
- Test02类继承Student类与Speaker类
- 如果两个父类有同名方法,那么继承第一个父类的同名方法
- 大爸和二爸就同一件事发表看法,听谁的?Python说:听大爸的!
1、创建程序 - 演示多根继承.py
"""
Created on Thu Oct 15 18:46:52 2020
@author: howard
演示多根继承
"""
class Person:
name = ''
age = 0
__weight = 0
def __init__(self, name, age, weight):
self.name = name
self.age = age
self.__weight = weight
def speak(self):
print('{} say: I\'m {} years old and {} pounds.'.format(self.name, self.age, self.__weight))
class Student(Person):
def __init__(self, name, age, weight, grade):
self.age = age
self.__weight = weight
self.grade = grade
def speak(self):
print("{} says: I'm {} years old, {} pounds and in Grade {}.". \
format(self.name, self.age, self.__weight, self.grade))
class Speaker:
topic = ''
name = ''
def __init__(self, name, topic):
self.name = name
self.topic = topic
def speak(self):
print("My name is {}, I am a speaker.\nThe theme of my speech is {}.".format(self.name, self.topic))
class Test01(Speaker, Student):
def __init__(self, name, age, weight, grade, topic):
Student.__init__(self, name, age, weight, grade)
Speaker.__init__(self, name, topic)
test01 = Test01("Tim", 25, 80, 4, "Python")
test01.speak()
class Test02(Student, Speaker):
def __init__(self, name, age, weight, grade, topic):
Student.__init__(self, name, age, weight, grade)
Speaker.__init__(self, name, topic)
test02 = Test02("Tim", 25, 80, 4, "Python")
test02.speak()
2、运行程序,查看结果