面向对象的三大特性(封装、继承、多态)

面向对象编程的三大特性(封装、继承、多态)是理解OOP的核心概念,以下从定义、作用及示例角度解析:

一、封装(Encapsulation)

• 定义:将数据(属性)和操作数据的方法(函数)封装在一个类中,通过访问修饰符(如public、private)控制外部对内部属性的访问。

• 作用:

◦ 隐藏内部实现细节,仅暴露必要接口,提升代码安全性和可维护性。

◦ 例如:手机类(Phone)封装“电池电量”属性,外部不能直接修改,只能通过“充电”“耗电”方法操作。

• 代码示例(Python):
class Phone:
    def __init__(self):
        self.__battery = 100  # 私有属性,外部不可直接访问
    
    def charge(self):
        self.__battery += 20
    
    def use(self):
        self.__battery -= 10
    
    def get_battery(self):
        return self.__battery
二、继承(Inheritance)

• 定义:子类(派生类)继承父类(基类)的属性和方法,可复用代码并扩展新功能。

• 作用:

◦ 减少代码冗余,形成类的层次结构(如“动物”→“哺乳动物”→“人类”)。

◦ 例如:“智能手机”继承“手机”的基本功能(打电话),并新增“拍照”“上网”等特性。

• 代码示例(Python):
class Phone:
    def call(self):
        print("打电话")

class SmartPhone(Phone):  # 继承Phone类
    def take_photo(self):
        print("拍照")
    def surf_internet(self):
        print("上网")

# 子类可使用父类方法
smartphone = SmartPhone()
smartphone.call()  # 输出:打电话
三、多态(Polymorphism)

• 定义:同一操作作用于不同对象,可产生不同结果(即“接口相同,实现不同”)。

• 作用:

◦ 提升代码灵活性,允许通过统一接口处理不同类型的对象。

◦ 例如:“打印”操作可作用于“文档”“图片”“表格”等不同对象,各对象自行实现打印逻辑。

• 代码示例(Python):
class Document:
    def print(self):
        print("打印文档内容")

class Image:
    def print(self):
        print("打印图片像素")

class Table:
    def print(self):
        print("打印表格数据")

# 统一接口处理不同对象
def print_file(obj):
    obj.print()

# 多态调用
print_file(Document())  # 输出:打印文档内容
print_file(Image())     # 输出:打印图片像素
总结

• 封装:藏细节,控访问;继承:复用代码,建层级;多态:统一接口,灵活适配。

• 三大特性共同支撑OOP的模块化、可复用和可扩展设计,是开发复杂系统的基础思想。

你可能感兴趣的:(python,c语言,java,开发语言,课程设计)