私有方法无法直接被类对象使用。
私有变量无法赋值,也无法获取值。
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()
# 单继承
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()
多态的概念依赖于继承。
定义:子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。
实现步骤:(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)