• python_面向对象——继承


    1.继承

    class Animal:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        def talk(self):
            print('子类独有的方法!')
    # 子类可以使用父类中的方法
    p = Person('yhf',23,'')
    p.eat()

      子类也可以继承父类的属性:

    class Animal:
        a_type = '动物'
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        def talk(self):
            print('独有的方法!')
    
    p = Person('yhf',23,'')
    # 子类也可以继承父类的属性
    print(p.a_type)

    2.重构父类中的方法

    class Animal:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        def talk(self):
            print('独有的方法!')
        # 重写父类的方法
        def eat(self):
            print('人在吃饭')
    # 子类和父类的方法重名,此时则执行子类中的方法,不执行父类中的方法
    p = Person('yhf',23,'')
    p.eat()

       属性的重构:

    class Animal:
        a_type = '动物'
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        a_type = '高级动物'
        def talk(self):
            print('独有的方法!')
    
    p = Person('yhf',23,'')
    # 子类和父类的属性重名,此时按照子类的属性,不按父类的属性
    print(p.a_type)

      不完全重构(先执行子类的方法,在执行父类的方法)

    class Animal:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        def talk(self):
            print('独有的方法!')
        # 重写父类的方法
        def eat(self):
            Animal.eat(self)    #在子类方法中调用父类方法中的重名方法,可以实现父类和子类中的同名方法都执行
            print('人在吃饭')
    
    p = Person('yhf',23,'')
    p.eat()

      执行父类的构造方法:

    class Animal:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        # 在子类的构造函数中调用父类的构造函数,同时执行子类和父类的构造方法
        def __init__(self,name,age,sex,efv):
            Animal.__init__(self,name,age,sex)
            self.efv = efv
    
    p = Person('wdc','22','',2019)
    print(p.name,p.sex,p.age,p.efv)

       super方法:效果同上

    class Animal:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
    
        def eat(self):
            print('{}正在吃东西~'.format(self.name))
    # 继承(Animal)类
    class Person(Animal):
        # 在子类的构造函数中调用父类的构造函数,同时执行子类和父类的构造方法
        def __init__(self,name,age,sex,efv):
            # super方法:super(子类名,self).__init__(参数)或者super().__init__(属性)
            # super(Person,self).__init__(name,age,sex)
            super().__init__(name, age, sex)
            self.efv = efv
    
    p = Person('wdc','22','',2019)
    print(p.name,p.sex,p.age,p.efv)
  • 相关阅读:
    makefile文件编写
    soem函数库的编译
    加秘钥的SSH
    ssh传文件
    ssh1
    安装paramiko的方法
    Ftp客户端(上传文件)
    ftp服务端
    vi编辑器没有颜色的解决办法
    socket服务器
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11854626.html
Copyright © 2020-2023  润新知