python封装,继承,多态

 

# 设计一个类,用来描述手机
class Phone:
    # 提供私有成员变量:__is_5g_enable
    __is_5g_enable = True      # 5g状态


    # 提供私有成员方法:__check_5g()
    def __check_5g(self):
        if self.__is_5g_enable:
            print("5g开启")
        else:
            print("5g关闭,使用4g网络")

    # 提供公开成员方法:call_by_5g()
    def call_by_5g(self):
        self.__check_5g()
        print("正在通话中")


phone = Phone()
phone.call_by_5g()

 继承:

 

 

class Phone:
    __is_5g_enable = True

    def __check_5g(self):
        if self.__is_5g_enable:
            print("5g开启")
        else:
            print("5g关闭,使用4g网络")
    def call_by_5g(self):
        self.__check_5g()
        print("正在通话中")
class Nfc:
    product = "chen"
    def nfc_print(self):
        print("nfc开启")
class Phone2(Phone, Nfc):  #实现继承
    pass  # 占位语句,用来保证完整性
phone1 = Phone2()
phone1.call_by_5g()
print(phone1.product)

 复写和使用父类成员:

class Phone:
    __is_5g_enable = False

    def __check_5g(self):
        if self.__is_5g_enable:
            print("5g开启")
        else:
            print("5g关闭,使用4g网络")
    def call_by_5g(self):
        self.__check_5g()
        print("正在通话中")
class Nfc:
    product = "chen"
    def nfc_print(self):
        print("nfc开启")
class Phone2(Phone, Nfc):  #实现继承
    product = "shuai"   # 复写
    print(f"原来的厂商是{Nfc.product}")
    def nfc_print(self):
        print("nfc准备")
        # Nfc.nfc_print(self)   #调用父类方法
        super().nfc_print()  # 调用父类的第二种方法

phone1 = Phone2()
phone1.call_by_5g()
print(phone1.product)
phone1.nfc_print()

 

 

多态

class Animal:
    def speak(self):
        pass
class Dog(Animal):
    def speak(self):
        print("汪汪汪")
class Cat(Animal):
    def speak(self):
        print("喵喵喵")
def make_noise(animal: Animal):  # 声明类型后可以直接调用方法
    animal.speak()
dog = Dog()
cat = Cat()
make_noise(cat)  # 多态的一种使用方法,传入不同的子类对象

 

抽象类(接口): 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值