1
class Person(object):
def talk(self):
print('talk')
def run(self):
print('person run')
class Car(object):
def run(self):
print('car run')
class PersonCarRobot(Person, Car):
def fly(self):
print('fly')
person_car_robot = PersonCarRobot()
person_car_robot.talk()
person_car_robot.run()
person_car_robot.fly()
1の実行結果
talk
person run
fly
PersonCarRobotクラスは、
PersonクラスとCarクラスの両方を継承している。
なので、
両方のクラスのメソッドを持っている。
ここで、
PersonクラスもCarクラスも runというメソッドを持っている。
この場合、
class PersonCarRobot(Person, Car)となっており、
先にPersonクラスを継承して、ないものをCarクラスから継承するイメージ。
なので、Carクラスのrunメソッドは継承されない。
class PersonCarRobot(Car, Person)と入れ替えると
先にCarクラスを継承して、ないものをPersonクラスから継承する。
Personクラスのrunメソッドは継承されない。
2
class Person(object):
def talk(self):
print('talk')
def run(self):
print('person run')
class Car(object):
def run(self):
print('car run')
class PersonCarRobot(Car, Person):
def fly(self):
print('fly')
person_car_robot = PersonCarRobot()
person_car_robot.talk()
person_car_robot.run()
person_car_robot.fly()
2の実行結果
talk
car run
fly