【最详解面向对象编程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)

