美文网首页
Python高级——对象之继承

Python高级——对象之继承

作者: 浮_屠 | 来源:发表于2018-08-30 20:30 被阅读0次

Python对象三大特性:

继承

一,单继承

  • 在生活中继承一般是父辈的东西传承个下一代,有子女接收
  • 在程序中描述的事物之间的所属关系也是继承,如:猫和狗都属于动物,,在程序中则猫狗继承动物,,同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承足够


    image.png

使用如下:

# 定义一个父类,如下:
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()

注意如下:

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 A:
    def printA(self):
        print('----A----')

# 定义一个父类
class B:
    def printB(self):
        print('----B----')

# 定义一个子类,继承自A、B
class C(A,B):
    def printC(self):
        print('----C----')

obj_C = C()
obj_C.printA()
obj_C.printB()

Python中是可以多继承的
父类中的属性和方法一会让子类继承
当一个子类有多个父类且有相同的属性或行为是先执行A

重写与调用

重写就相当于是子类中,有个和父类有相同名字的方法,在子类中的方法会覆盖父类中同名的方法

#coding=utf-8
class Cat(object):
    def __init__(self,name):
        self.name = name
        self.color = 'yellow'


class Bosi(Cat):

    def __init__(self,name):
        # 调用父类的__init__方法1(python2)
        #Cat.__init__(self,name)
        # 调用父类的__init__方法2
        #super(Bosi,self).__init__(name)
        # 调用父类的__init__方法3
        super().__init__(name)

    def getName(self):
        return self.name

bosi = Bosi('xiaohua')

print(bosi.name)
print(bosi.color)

相关文章

  • Python高级——对象之继承

    Python对象三大特性: 继承 一,单继承 在生活中继承一般是父辈的东西传承个下一代,有子女接收 在程序中描述的...

  • Python进阶之高级面向对象编程(三)

    本篇主要介绍面向对象高级用法、错误处理以及文件读写。 多继承 Python 中继承多个类用逗号隔开,示例如下所示:...

  • 面对对象高级编程

    面向对象高级编程: 面向对象编程:封装、继承和多态 面向对象高级编程:多重继承、定制类和元类

  • Python面向对象编程(下)

    数据封装、继承和多态是面向对象程序设计中最基础的3个概念,今天学习下Python中的高级特性——多重继承、定制类、...

  • Python

    Python是一种高级动态,完全面向对象的语言、函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多...

  • 王艳华Pythonday03

    Python的面向对象 Java 面向对象 继承

  • 第八章:面向对象高级编程

    数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有很多高级特性,允许我们写...

  • python面向对象之继承

    1.python中继承一个类继承的形式是:class 子类(父类)一般的类我们让它继承自object。 super...

  • Python 之 面向对象继承

    基本继承语法 多继承

  • Python面向对象-类的继承

    继承是面向对象的重要特性之一,作为面向对象的Python,接下来让我们探讨一下Python的继承机制 为什么继承?...

网友评论

      本文标题:Python高级——对象之继承

      本文链接:https://www.haomeiwen.com/subject/hrgdwftx.html