# 设计一个类,用来描述手机
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) # 多态的一种使用方法,传入不同的子类对象
抽象类(接口):