python私有属性可以被子类继承吗_python面向对象--私有和继承

一、 私有属性和私有方法

应用场景

在实际开发中,对象的某些属性或方法可能只希望在对象的内部使用,而不希望在外部被访问到

私有属性 就是 对象 不希望公开的属性 (属性即类里面的变量)

私有方法 就是 方法 不希望公开的方法

定义方式

在定义属性或方法时,在属性名或者方法名前添加两个下划线,定义的就是私有属性或方法,只能在类里面用。

classMy:deftest(self):

self.__password = 123456 #私有属性

defsay(self):print('password',self.__password)def __set_password(self): #私有方法

self.__password = 7890

defupdate(self):

self.__set_password()

m=My()

m.test()#无输出结果

m.say() #输出:password 123456

m.update() #无输出结果

m.say() #输出:password 7890

参考:https://www.2cto.com/os/201807/763010.html

二、继承

子类继承自父类,可以直接享受父类中已经找到封装好的方法

子类中应该根据自己的需求,封装子类特有的属性和方法

单继承

1,继承的概念 语法和特点

继承的概念:子类拥有父类的所有方法和属性(子类只需封装自己特有的方法和属性)

2,继承的语法

class 类名(父类)

def 子类特有的方法

classLm:

money= 1000000house= 5

defdriver(self):print('会开车')classMcb(Lm):defabout_me(self):print('我有 %s 钱 ,%s 房子'%(self.money,self.house))

self.driver()defdriver(self):print('会开28个轮子的汽车')

m=Mcb()

m.driver()#输出:会开28个轮子的汽车

m.about_me()

#以上代码输出:

会开28个轮子的汽车

我有1000000 钱 ,5房子

会开28个轮子的汽车

3. super().方法名():在父类某个方法的基础上增加新功能

class Car: #父类

defrun(self):print('running...')return 'abc'

class NewCar(Car): #子类

defrun(self):#沿用父类中的功能的同时,再增加下面的新功能

res =super().run() #super()的意思就是找到父类,等同于Car().run()

print('fly...') #增加的父类中没有的功能

print(res)

bmw=NewCar()

bmw.run()

#以上代码输出结果如下:

running...

fly...

abc

继承的传递性:(爷爷 父亲 儿子)

1,C类从B类继承,B类又从A类继承

2,那么C类就具有B类和A类的所有的属性和方法

子类拥有父类以及父类的父类中封装的所有的属性和方法

参考:https://www.2cto.com/os/201807/763010.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值