class Phone: IMEI = None # 序列号 producer = "HM" # 厂商 def call_by_4g(self): print("4g通话") class Phone2023(Phone): face_id = "10001" def call_by_5g(self): print("2023年新功能:5g通话") phone = Phone2023() print(phone.producer) phone.call_by_4g() phone.call_by_5g()
时间: 2024-04-18 17:24:39 浏览: 87
consumer-producer.rar_producer_consumer.c_生产者消费者问题
这段代码展示了面向对象编程中的继承和多态的概念,同时也体现了封装的特点。下面是对代码的解释:
首先定义了一个基类 `Phone`,它有两个属性 `IMEI` 和 `producer`。`IMEI` 是手机的序列号,`producer` 是手机的厂商。然后定义了一个方法 `call_by_4g()`,用于进行4G通话。
然后定义了一个继承自基类 `Phone` 的子类 `Phone2023`。在子类中新增了一个属性 `face_id`,表示2023年新功能中的人脸识别ID。同时,子类覆盖了基类的方法,定义了新的方法 `call_by_5g()`,用于进行5G通话。
接着创建了一个 `Phone2023` 类的实例 `phone`。通过实例访问基类的属性 `producer`,并输出其值为 "HM"。然后调用了基类的方法 `call_by_4g()`,输出 "4g通话"。最后调用了子类新增的方法 `call_by_5g()`,输出 "2023年新功能:5g通话"。
这段代码展示了类的继承和多态的特性。通过继承,子类可以继承基类的属性和方法,并且可以在子类中新增属性和方法。通过多态,可以在子类中覆盖基类的方法,实现不同的行为。这样可以实现代码的重用和扩展,同时也体现了封装的特点,隐藏了具体的实现细节,通过公共接口访问和操作对象。
阅读全文