Python之类和对象【三】---继承(1.0-什么是继承、私有化)

文章目录


前言

讲解继承的基础知识,什么是继承,以及父类的私有化的两种方式。


一、继承

继承:父类的所有属性和方法(除了私有化以外的),子类都全部拥有。

语法:
    class 子类(父类):
        pass

继承面临的问题:

1、如果父类有不想被继承的,怎么办? --如何私有化

2、对于继承的某此方法,完全覆盖父类的实现方式。

          保留父类方法的实现,新增/优化实现方式。

多继承
多重继承

(1)完全继承父类方法,使用子类的对象调用父类的所以属性和方法

二、私有化

继承面临的问题:
    1、如果父类有不想被继承的,怎么办? --如何私有化

私有化:


(1)_属性名/方法名:   
        不是强制私有。实际上通过对象/子类对象名都是可以访问的。子类对象名/子类的self.私有属性
        子类可以继承。

        潜规则:希望大家都遵守,但我不强制。

(2)__属性名/方法名:
  父类的私有方法,子类不能访问。父类的对象也不可以访问。
  只有父类内部能访问,父类内部实现可以通过self.__属性名/方法名。

 父类的私有化


举例1:

class Parent:

    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.private_money = 0

    def save_priveate_money(self, money):
        print(f"藏私房钱了....藏了{money}元")
        self.private_money += money
        print(f"藏私房一共有{self.private_money}元")

    def earn_money(self,do_work, salary):
        print(f"{self.name}从事{do_work}工作")
        print(f"{self.name}通过这个工作,每个月赚{salary}元")

class Son(Parent):
    pass

# 继承:父类的所有属性和方法(除了私有化以外的),子类都全部拥有。
s = Son("子类", 18)
s.save_priveate_money(200)
s.save_priveate_money(200)
s.earn_money("刷碗", 3000)

举例2:

class Parent:

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__private_money = 0

    def save_priveate_money(self, money):
        print(f"藏私房钱了....藏了{money}元")
        self.__private_money += money
        print(f"藏私房一共有{self.__private_money}元")

    def earn_money(self, do_work, salary):
        print(f"{self.name}从事{do_work}工作")
        print(f"{self.name}通过这个工作,每个月赚{salary}元")


class Son(Parent):

    def use_private_money(self):
        print(self.__private_money)



# 继承:父类的所有属性和方法(除了私有化以外的),子类都全部拥有。
s = Son("子类", 18)
s.save_priveate_money(200)
s.save_priveate_money(200)
s.earn_money("刷碗", 3000)

# 子类对象,访问父类的__开头的私有属性,报错。
# s.use_private_money()
# 父类对象,直接访问__开头的私有属性,报错。
# print(Parent("父类", 55).__private_money)


总结

暂无

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值