16-python3面向对象之继承

面向对象继承

生活中,继承了什么?物质财产等等..
生活中可以继承–公开的、
不能继承–物体独有的![私有的!]
不能继承–创建、初始化[不能继承的!]
继承:到底发生了什么事情?影响了那些事情?
儿子-> 直接使用父亲的各种继承下来的资源
儿子-> 即使什么东西都没有,拥有所有继承的资源-资源的复用!

class Pet:
    '''宠物类型'''
    def __init__(self, nickname, age, gender):
        self.nickname = nickname
        self.age = age
        self.gender = gender


class Cat(Pet):
    '''宠物猫类型'''
    pass


class Dog(Pet):
    '''宠物狗类型'''
    pass


# 继承的体现:子类可以使用父类的所有公开属性和方法
cat = Cat("tom", 18, "男")
print(cat.nickname, cat.age, cat.gender)

cat.nickname = "汤姆"
print(cat.nickname, cat.age, cat.gender)
# 查看某个类型的父类或者所有父类
print(Cat.__base__)
print(Cat.__bases__)

# 查看某个类型的所有子类
print(Pet.__subclasses__())

# 查看当前对象的类型
print(type(cat))
print(cat.__class__)

子类调用父类的属性、方法

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

    def shi_zi_hou(self):
        print("天神在狮子吼....")


class Zhishen(God):

    def __init__(self, name, age):
        #调用父类初始化函数~初始化父类数据
        # God.__init__(self, name) # 类型调用属性
        super(Zhishen, self).__init__(name) # 对象调用属性
        # super().__init__(name)

        self.age = age

    def shi_zi_hou(self):
        print("智深在拔树....")
        #super().shi_zi_hou()   #调用父类方法, 打印>>>天神在狮子吼....


zhishen = Zhishen("鲁智深", 28)

print(zhishen.name, zhishen.age)
zhishen.shi_zi_hou()

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值