【python基础_05】面向对象2_封装、继承、多态

本文介绍了Python中的面向对象编程概念,包括封装的原理,如私有成员的使用;继承的基本语法,包括单继承和多继承,并提供了代码示例;以及多态的概念,通过抽象类和接口实现代码的灵活性。

1.封装

1.1 封装的概念

在这里插入图片描述

1.2 私有成员

在这里插入图片描述
在这里插入图片描述
私有方法无法直接被类对象使用。
私有变量无法赋值,也无法获取值。

在这里插入图片描述私有方法无法直接被类对象使用,但可以被其他成员使用。
在这里插入图片描述
在这里插入图片描述

1.3 代码实例

class Phone:
    __current_voltage = 1       # 当前手机运行电压,私有成员变量

    def __keep_single_core(self):  # 私有成员方法
        print("单核模式运行")

    def call_by_5G(self):
        if self.__current_voltage >= 1:
            print("5G开启")
        else:
            self.__keep_single_core()
            print("没电了,不能开5G,设为单核模式了")

phone = Phone()
phone.call_by_5G()

2. 继承

2.1 继承的基础语法

在这里插入图片描述
在这里插入图片描述

2.1.1 单继承

在这里插入图片描述

2.1.2 多继承

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.1.3 代码实例
# 单继承
class Phone:
    IMEI = None  #序列号
    producer = "HM"

    def call_by_4g(self):
        print("4G通话")


class Phone2022(Phone):
    face_id = "1001"  #面部识别id

    def call_by_5g(self):
        print("hello,2022-5g")

phone = Phone2022()
print(phone.producer) #新旧功能都能用
phone.call_by_4g()
phone.call_by_5g()


class NFCReader:
    nfc_type = "第五代"
    producer = "HM"

    def read_card(self):
        print("NFC读卡")

    def write_card(self):
        print("NFC写卡")


class RemoteControl:
    rc_type = "红外遥控"

    def control(self):
        print("红外遥控开启了")

# 多继承
class Myphone(Phone,NFCReader,RemoteControl):  #如果有同名的量,选用前者的,比如Phone和NFCReader都有producer,选Phone
    pass  # 不报错又表示这里是空的                 # 谁先被继承,谁的优先级更高


phone = Myphone()
phone.control()

2.2 复写父类成员

在这里插入图片描述

2.3 调用父类成员

在这里插入图片描述

在这里插入图片描述

3.多态

3.1 多态的概念

多态的概念依赖于继承。

定义:子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。
实现步骤:(1)定义父类,提供公共方法。(2)定义子类,重写父类方法。(3)传递子类对象给调用者,可以看到不同子类执行效果不同。

在这里插入图片描述

class Animal:     #抽象方法
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print("wangwang")

class Cat(Animal):
    def speak(self):
        print("miao")

def make_noise(animal:Animal):
    animal.speak()

dog = Dog()
cat = Cat()

make_noise(dog)
make_noise(cat)

在这里插入图片描述

3.2 抽象类(接口)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值