# -*- coding: utf-8 -*-
"""
クラスの継承の練習（Animal, Dog）
"""


# 動物のクラス
class Animal:
    ashi    = 4   # 足の本数
    nakigoe = ""  # 鳴き声（とりあえず無音）

    # 歩く
    def aruku(self):
        print("てくてく")  # 足音

    # 鳴く
    def naku(self):
        print(self.nakigoe)


""" 指示ここから """
# 以下の犬のクラス（Dog）について，
# 動物のクラス（Animal）を必要十分に継承する形に書き換えなさい．
# Animalクラスと完全重複する機能はDogクラスから削除すること．

# 犬のクラス
class Dog:
    ashi     = 4         # 足の本数
    nakigoe  = "ワン！"  # 鳴き声は共通の形で設定
    kainushi = "不明"

    # 歩く
    def aruku(self):
        print("てくてく")
    
    # 鳴く
    def naku(self):
        print(self.nakigoe)

    # 飼い主を聞く
    def ouchi(self):
        return self.kainushi  # 文字列を戻す

    # 散歩する（繰り返し歩く）
    def sanpo(self, n=3):
        print("行ってきます")
        for i in range(n):
            self.aruku()
        print("ただいま")

""" 指示ここまで """


def main():
    pochi = Dog()  # インスタンスを生成
    tarou = Dog()  # 同上
    tarou.kainushi = input("飼い主：")  # メンバ変数を上書き
    print()  # 採点の都合上の空行

    print(f"ポチの足は{pochi.ashi}本")
    pochi.sanpo()         # インスタンスメソッドを呼び出し
    print(pochi.ouchi())  # 戻り値のあるメソッドを呼び出し
    pochi.naku()          # インスタンスメソッドを呼び出し

    # tarouにもほぼ同じことをする
    print(f"太郎の足は{tarou.ashi}本")
    tarou.sanpo(4)
    print(tarou.ouchi())
    tarou.naku()


if __name__ == "__main__":
    main()
