继承介绍以及单继承

  1. 继承的概念
    在现实生活中,继承一般指的是子女继承父辈的财产,如下图

在这里插入图片描述

搞不好,结果如下…

在这里插入图片描述

在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承足够,如下如所示:

在这里插入图片描述

  1. 继承示例
    #定义一个父类,如下:
    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__方法
总结
子类在继承的时候,在定义类时,小括号()中为父类的名字
父类的属性、方法,会被继承给子类
3. 注意点
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 dogTest1(self):
#print(self.__name) #不能访问到父类的私有属性
print(self.color)

def dogTest2(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()
私有的属性,不能通过对象直接访问,但是可以通过方法访问
私有的方法,不能通过对象直接访问
私有的属性、方法,不会被子类继承,也不能被访问
一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用

单继承
class Animal:
def eat(self):
print("-----吃-----")

def drink(self):
    print("-----喝-----")

class Dog(Animal):
“”"
def eat(self):
print("-----吃-----")

def drink(self):
    print("-----喝-----")
"""
pass

class Cat:
pass

wang_cai = Dog()
wang_cai.eat()
wang_cai.drink()

猜你喜欢

转载自blog.csdn.net/PG_peng/article/details/84552704