在 Java 中,封装(Encapsulation)和多态(Polymorphism)都是面向对象编程(OOP)的重要特性,但它们的关注点、作用和实现方式完全不同。下面从多个角度帮你区分。
封装是将数据(属性)和操作数据的方法绑定在一起,并隐藏对象的内部实现细节,只对外提供公共访问方式。
private 修饰成员变量getter / setter 方法class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
if (name != null) {
this.name = name;
}
}
}
✅ 封装关注的是“数据如何被保护和使用”
多态是指同一个行为(方法)在不同对象上有不同的实现方式。
class Animal {
void sound() {
System.out.println("动物叫");
}
}
class Dog extends Animal {
void sound() {
System.out.println("汪汪");
}
}
class Cat extends Animal {
void sound() {
System.out.println("喵喵");
}
}
Animal a = new Dog();
a.sound(); // 输出:汪汪
✅ 多态关注的是“同一方法的不同表现”
| 对比点 | 封装 | 多态 |
|---|---|---|
| 核心思想 | 隐藏细节,保护数据 | 同一接口,不同实现 |
| 关注对象 | 类内部结构 | 类与类之间的关系 |
| 实现方式 | private + getter/setter | 继承 + 方法重写 |
| 主要作用 | 安全性、可维护性 | 扩展性、灵活性 |
| 发生时机 | 编译期(结构定义) | 运行期(方法调用) |
如果你愿意,我也可以帮你用生活例子 / 考试答题模板 / 面试回答版本来解释。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。