Python学习笔记:演示多根继承

一、Python支持多根继承

  • Python允许多根继承,跟C++一样,一个类可以继承多个父类,即一子多父。
  • 虽然Java语言不允许多根继承,只能继承一个父类,但是可实现多个父接口。

二、案例演示Python多根继承

  • Student类继承Person类
  • Test01类继承Speaker类与Student类
  • Test02类继承Student类与Speaker类
  • 如果两个父类有同名方法,那么继承第一个父类的同名方法
  • 大爸和二爸就同一件事发表看法,听谁的?Python说:听大爸的!

1、创建程序 - 演示多根继承.py

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
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() # 调用的是Speaker的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() # 调用的是Student的speak()方法

2、运行程序,查看结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/howard2005/article/details/109103148