1.继承的概念
现实生活中,继承一般指的是子女继承父辈的财产。
在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴黎猫都继承自猫,而沙皮狗和斑点狗都继承狗。
2.继承示例
#定义一个父类,如下: class Cat(object): def _init_(self,name,color="白色"): self.name = name self.color = color def run(self): print("%s --在跑"%self.name) #定义一个子类:继承Cat类如下: class Bosi(Cat): def setNewName(self,newName): self.name = newName def eat(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_ 方法
总结:
*子类在继承的时候,在定义类时,小括号()中为父类的名字
*父类的属性、方法,会被继承给子类
注意点:
class Animal(object): def _init_(self,name = '动物',color = '白色') self._name = name self.color = color def _test(self): print(self._name) print(self.color) def test(self): print(self._name) print(self.color) class Dog(Animal): def dogTest(self): #print(self._name) #不能访问到父类的私有属性 print(self.color) def deoTest2(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()
* 私有的属性,不能通过对象直接访问,但是可以通过方法访问
* 私有的方法,不能通过对象直接访问
* 私有的属性、方法,不会被子类基础,也不能被访问
* 一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用。