Python类与继承多态深度解析

0 下载量 144 浏览量 更新于2024-08-31 收藏 83KB PDF 举报
在Python编程语言中,类是创建对象的蓝图,它定义了一组属性(即数据成员)和方法(即函数)。类的定义使用关键字"class",后跟类名,通常首字母大写。在上述例子中,我们定义了一个名为`Point`的类,用于表示二维坐标系统中的点。类的初始化方法`__init__`用于设置对象的初始状态,它接受两个参数`x`和`y`,并将其赋值给对象的属性`self.x`和`self.y`。 在Python中,`self`是一个指向实例对象的引用,它不是关键字,但通常作为第一个参数使用,用来访问对象的属性和方法。在创建`Point`实例`p`时,`__init__`方法会被自动调用,设置`p`的坐标为`(10, 10)`。`type()`函数用于检查对象的类型,这里`p`是`Point`类的一个实例。 Python没有像C++或Java那样的访问修饰符(如public、private、protected),所以所有类成员默认都是公开的。这意味着可以直接访问对象的属性和方法,没有明确的访问控制。然而,为了保持代码的封装性,一般推荐遵循“约定优于配置”的原则,将不希望直接暴露的成员以单下划线`_`或双下划线`__`开头,表示非公开(但并不绝对私有)。 继承是面向对象编程的一个关键特性,允许创建一个新类(子类)来扩展或修改已存在的类(父类)的行为。子类会继承父类的所有属性和方法,同时可以添加自己的属性和方法。例如: ```python class ColorPoint(Point): def __init__(self, x, y, color): super().__init__(x, y) # 调用父类的初始化方法 self.color = color cp = ColorPoint(10, 10, 'red') ``` 在这个例子中,`ColorPoint`继承自`Point`,并添加了一个新的属性`color`。`super()`函数用于调用父类的`__init__`方法。 多态是指不同类的对象可以对同一消息做出响应的能力。在Python中,多态是通过方法重写(覆盖)实现的。子类可以定义与父类同名的方法,这就是重写。当通过子类对象调用该方法时,会执行子类的方法,而不是父类的。例如: ```python class Circle(Point): def area(self): return 3.14 * self.x * self.y c = Circle(5, 5) print(c.area()) # 输出:78.5 ``` `Circle`类继承自`Point`,并添加了一个`area`方法。尽管`Point`类没有`area`方法,但`c`是`Circle`的实例,因此可以调用`area`方法,这就是多态性。 Python的类和继承机制提供了强大的抽象和代码复用能力,使得程序员能够构建复杂、灵活的软件结构。多态则进一步增强了这种灵活性,允许编写更加通用和可扩展的代码。理解并熟练掌握这些概念对于Python开发者来说至关重要。