1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. メソッド

メソッド

メソッドのオーバーライド

exclaim()メソッドの動作をYugo向けに変えてみる
Class Car():
def exclaim(seif):
print("i`m a Car")

class Yugo(Car):
def exclaim(seif):
print("i`m a Yugo! Much like a Car,but more Yugo-ish.")

give_me_a_car = Car()
give_me_a_Yugo = Yugo()

give_me_a_car.exclaim()

i`m a Car

give_me_a_Yugo.exclaim()

i`m a Yugo! Much like a Car,but more Yugo-ish.

ちょっとしたサンプル

class Person():
def __init__(self, name)
self.name = name

class MDperson(Person):
def __init__(self, name):
self.name = " Docter " + name

class JDPerson(Person):
def __init__(self, name):
self.name = name + " , EsQuire "

ここで、初期化メソッドの__init__()は、親のPersonクラスと同じ
引数を取っているが、オブジェクトに格納されるnameの値を変えている

person = person('Fudd')
docter = MDperson('Fudd')
lawyer = JDPerson('Fudd')

print(person.name)
fudd
print(docter.name)
Docter fudd
print(lawyer.name)
fudd , EsQuire

メソソドの追加

子クラスは、親クラスになかったメソッドを追加することもできる。
Yugoクラスだけにneed_a_push()メソッドを定義しよう。
class Car():
def exclaim(self):
print("i`m a Car")

class Yugo(Car):
def exclaim(seif):
print("i`m a Yugo! Much like a Car,but more Yugo-ish.")
def need_a_push(self)
print("A little help here?")