【最详解面向对象编程2】——面向对象三大特征——如桃花来
发布人:shili8
发布时间:2025-01-01 15:22
阅读次数:0
**面向对象编程2: 面向对象三大特征**
在前一篇文章中,我们介绍了面向对象编程的基本概念和类的定义。今天,我们将继续讨论面向对象编程的三大特征:封闭性、继承性和多态性。
**1. 封闭性**
封闭性是指一个类的内部状态和行为应该尽可能地与外部世界隔离。这意味着一个类不应该直接访问或修改其他类的内部状态。相反,一个类应该通过提供公共接口(方法)来暴露其内部状态和行为。
例如,我们可以定义一个`Person`类,如下所示:
javapublic class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
在这个例子中,`Person`类的内部状态(`name`和`age`)是私有的,这意味着它们不能直接被外部世界访问或修改。相反,通过提供公共接口(方法),我们可以控制对这些内部状态的访问。
**2. 继承性**
继承性是指一个类可以从另一个类继承属性和行为。这允许我们创建一个新的类,而不需要重新实现所有的属性和行为。相反,我们可以简单地继承它们,从而减少代码重复。
例如,我们可以定义一个`Student`类,如下所示:
javapublic class Student extends Person { private String major; public Student(String name, int age, String major) { super(name, age); this.major = major; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } }
在这个例子中,`Student`类继承了`Person`类的属性和行为(`name`和`age`)。同时,它还添加了一些新的属性和行为(`major`)。
**3. 多态性**
多态性是指一个类可以有多个不同的实现,这取决于上下文。在面向对象编程中,多态性允许我们创建一个通用的接口,而不需要关心具体的实现细节。
例如,我们可以定义一个`Shape`类,如下所示:
javapublic abstract class Shape { public abstract double getArea(); } public class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } } public class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } }
在这个例子中,`Shape`类是一个抽象类,它定义了一个通用的接口(`getArea()`)。同时,它还允许我们创建不同的实现(`Circle`和`Rectangle`)。
**总结**
面向对象编程的三大特征:封闭性、继承性和多态性,是构建可维护、灵活和高效的软件系统的关键。通过理解这些概念,我们可以设计出更好的类和接口,从而提高代码的重用性和可扩展性。
**参考**
* "面向对象编程"(《计算机科学与技术》杂志)
* "Java语言规范"(Oracle Corporation)
* "C++语言规范"(ISO/IEC14882:2017)