Python学习:继承、多态;静态方法,类方法,实例方法

# 私有属性和方法及其访问的方法
class Woman:
def __init__(self,name):
self.name=name
self.__age=18
    def __secret(self):
print("%s的年龄是%d"%(self.name,self.__age))

xiaofang=Woman("小芳")

print(xiaofang._Woman__age)#不建议使用这种方式访问私有属性
#只建议使用公共方法访问私有属性
class Animal:
    def eat(self):
        print("吃")
    def drink(self):
        print("喝")
    def run(self):
        print("跑")
    def sleep(self):
        print("睡")
class Dog(Animal):
    def bark(self):
        print("汪汪叫")
class XiaoTianQuan(Dog):
    def fly(self):
        print("我会飞")
    def bark(self):
        # 调用父类方法一,使用特殊对象super(). 注意括号!
        super().bark()
        # 调用父类方法二(不推荐使用)
        Dog.bark(self)

        print("-"*10)
        print("叫的跟神一样")


class Cat(Animal):
    def catch(self):
        print("抓老鼠")

xtq=XiaoTianQuan()
xtq.bark()

wangcai=Dog()
wangcai.sleep()


class Dog(object):# 注意使用新式类(以object为父类的基类)
    def __init__(self,name):
        self.name=name
    def game(self):
        print("普通狗的蹦跳")

class XiaoTianQian(Dog):
    def game(self):
        print("%s飞到天上去玩耍"% self.name)
class Person(object):
    def __init__(self,name):
        self.name=name
    def game_with_dog(self,dog):
        print("%s和%s快乐的玩耍" % (self.name,dog.name))
        dog.game()

commondog=Dog("普通狗")
wangcai=XiaoTianQian("飞天旺财")
xiaoming=Person("小明")

xiaoming.game_with_dog(wangcai)
xiaoming.game_with_dog(commondog)
//不同子类对象调用相同父类方法,产生不同结果
//前提:继承 重写
class Game(object):
    top_score = 0

    def __init__(self, player_name):
        self.player_name = player_name

    @staticmethod
    def show_help():  # 应为静态方法,既无需访问类属性,也无需访问实例属性
        print("帮助信息:让僵尸进入大门")

    @classmethod
    def show_top_score(cls):  # 应为类方法,只需访问类的属性
        print("历史记录 %d" % cls.top_score)

    def start_game(self):  # 应为实例方法,只需访问实例属性
        print("%s 开始游戏啦" % self.player_name)


game = Game("小明")

game.start_game()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值