在现实生活中,继承一般指的是子女继承父辈的财产,如下图
搞不好,结果如下..
在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承足够,如下如所示:
2.继承示例#定义一个父类,如下:classCat(object):def__init__(self,name,color="白色"):self.name=nameself.color=colordefrun(self):print("%s--在跑"%self.name)#定义一个子类,继承Cat类如下:classBosi(Cat):defsetNewName(self,newName):self.name=newNamedefeat(self):print("%s--在吃"%self.name)bs=Bosi("印度猫")print(bs的名字为:%s%bs.name)print(bs的颜色为:%s%bs.color)bs.eat()bs.setNewName(波斯)bs.run()
运行结果:
说明:
虽然子类没有定义__init__方法,但是父类有,所以在子类继承父类的时候这个方法就被继承了,所以只要创建Bosi的对象,就默认执行了那个继承过来的__init__方法
总结子类在继承的时候,在定义类时,小括号()中为父类的名字
父类的属性、方法,会被继承给子类
3.注意点classAnimal(object):def__init__(self,name=动物,color=白色):self.__name=nameself.color=colordef__test(self):print(self.__name)print(self.color)deftest(self):print(self.__name)print(self.color)classDog(Animal):defdogTest1(self):#print(self.__name)#不能访问到父类的私有属性print(self.color)defdogTest2(self):#self.__test()#不能访问父类中的私有方法self.test()A=Animal()#print(A.__name)#程序出现异常,不能访问私有属性print(A.color)#A.__test()#程序出现异常,不能访问私有方法A.test()print("------分割线-----")D=Dog(name="小花狗",color="黄色")D.dogTest1()D.dogTest2()
私有的属性,不能通过对象直接访问,但是可以通过方法访问
私有的方法,不能通过对象直接访问
私有的属性、方法,不会被子类继承,也不能被访问
一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用
预览时标签不可点收录于话题#个上一篇下一篇