python中类的封装与继承

封装

封装就是将统一类型的内容放置在一起,通过self去调用

class People():
    def __init__(self, name, age):
        # self是对象,name是属性,self.name就是将对象和属性封装在一起
        self.name = name
        self.age = age

    def run(self):
        print('%s is running...' % self.name)


P1 = People(name='octopus', age='10')
P1.run()

继承

定义一个类,从现有的某个类进行继承
新的类,称为子类,扩展类(subclass),被继承的称为父类,基类,超类
(Baseclass、superclass)

代码示例
继承的工作机制

class Father():
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print('%s is eating.' % self.name)

    def sleep(self):
        print('%s is sleeping.' % self.name)

class Son(Father):
    def eat(self):
    	# 父类的调用方法
        # Father.eat(self)
        # 不更改继承名直接调用父类方法
        super(Son,self).eat()
        print('play then eat.')

father = Father('old', 40)
son = Son('young', 20)

调用顺序:实例化对象默认执行构造方法,子类没有的方法调用父类
调用父类的方法

son.eat()
son.sleep()

继承拥有传递性,子类拥有父类的父类…的方法

class Animal():
    def eat(self):
        print('eat')


class cat(Animal):
    def miao(self):
        print('miao')


c = cat()
c.eat()
c.miao()


class duolaameng(cat):
    def speak(self):
        print('speak')


c = duolaameng()
c.eat()

如果有多个相同的方法,继承由前向后继承

多态性
传入多个子类时,只需要继承父类就行
开闭原则:
扩展开放,允许子类重写方法

修改封闭,扩展开放,直接继承父类方法
代码实例

class get_grades():
    def get(self):
        print('100')


class Math(get_grades):
    def get(self):
        print('90')


class Chinese(get_grades):
    def get(self):
        print('80')


A = Math()
B = Chinese()
A.get()
B.get()
上一篇:java多态 成员访问特点(父类引用指向子类对象)


下一篇:浅析BFC布局的概念以及作用