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()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一门面向对象的编程语言,它支持封装继承和多态。 封装是指将数据和行为封装在一个类中,对外部隐藏实现细节,只保留接口。Python通过使用双下划线“__”来实现类的私有属性和方法。 继承是指一个子类可以继承父类的属性和方法,并且可以自己添加新的属性和方法。Python中使用类名后面的括号指定父类,子类会自动继承父类的所有属性和方法。 多态是指同一个方法在不同的子类中具有不同的实现方式。Python中的多态是通过方法重写(覆盖)实现的。子类可以重写父类的方法,并且可以在子类中调用父类的同名方法。 下面是一个简单的Python类的示例,展示了封装继承和多态的用法: ```python # 定义一个Animal类 class Animal: def __init__(self, name): self.name = name def speak(self): pass # 定义一个Dog类,继承Animal类 class Dog(Animal): def speak(self): return "Woof!" # 定义一个Cat类,继承Animal类 class Cat(Animal): def speak(self): return "Meow!" # 创建一个Dog对象和一个Cat对象 dog = Dog("Rufus") cat = Cat("Fluffy") # 调用它们的speak()方法,输出不同的结果 print(dog.speak()) # 输出:Woof! print(cat.speak()) # 输出:Meow! ``` 在这个示例中,Animal类封装了一个名称属性和一个空的speak()方法,子类Dog和Cat继承了Animal类,并重写了speak()方法以实现多态。最后创建了一个Dog对象和一个Cat对象,分别调用它们的speak()方法,输出不同的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值