Java面向对象的三大特性是封装、继承和多态,它们是构建面向对象程序的核心机制,具体如下:
一、封装(Encapsulation)
- 概念:将数据(属性)和操作数据的方法(行为)包装在一个类中,隐藏内部实现细节,仅通过公开接口对外提供访问。
- 作用:
- 保护数据安全:通过访问修饰符(如 private )限制属性直接被外部修改,避免数据被非法篡改。
- 简化接口设计:外部仅需通过公开方法(如 getter/setter )与对象交互,降低使用复杂度。
- 示例:
class Person {
private String name;
private int age;
// 公开接口(getter/setter)
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) {
if (age >= 0) this.age = age; // 增加数据校验逻辑
}
}
二、继承(Inheritance)
- 概念:子类(派生类)继承父类(基类)的属性和方法,实现代码复用,并可扩展新功能或修改原有逻辑。
- 作用:
- 复用代码:避免重复编写父类已有的功能,提高开发效率。
- 构建类的层次结构:通过“is-a”关系(如“狗是动物”)组织代码,符合现实世界逻辑。
- 核心特性:
- 语法:使用 extends 关键字,如 class Dog extends Animal 。
- 方法重写(Override):子类可覆盖父类方法,实现特定逻辑(需用 @Override 注解声明)。
- super 关键字:调用父类的属性、方法或构造方法,解决父子类成员冲突。
- 示例:
class Animal {
protected String name;
public void eat() { System.out.println(name + "在进食"); }
}
class Dog extends Animal {
public Dog(String name) { this.name = name; }
@Override
public void eat() { // 重写父类方法
System.out.println(name + "在吃骨头");
}
public void bark() { System.out.println(name + "在吠叫"); }
}
三、多态(Polymorphism)
- 概念:同一操作作用于不同对象,可产生不同的行为(即“同一接口,多种实现”)。
- 实现方式:
- 静态多态(编译时多态):通过方法重载(Overload)实现,即同一类中定义同名但参数不同的方法。
- 动态多态(运行时多态):通过方法重写和父类引用指向子类对象实现,运行时根据对象实际类型调用对应方法。
- 作用:
- 提高代码扩展性:无需修改原有逻辑,通过新增子类即可实现功能扩展(符合开闭原则)。
- 降低耦合度:依赖抽象(父类或接口)而非具体实现,使模块间依赖更灵活。
- 示例:
// 抽象父类
abstract class Shape {
abstract double area(); // 抽象方法
}
// 子类实现
class Circle extends Shape {
private double radius;
public Circle(double radius) { this.radius = radius; }
@Override public double area() { return Math.PI * radius * radius; }
}
class Rectangle extends Shape {
private double width, height;
public Rectangle(double width, double height) { this.width = width; this.height = height; }
@Override public double area() { return width * height; }
}
// 多态应用:通过父类引用调用子类方法
public class Test {
public static void main(String[] args) {
Shape shape1 = new Circle(5);
Shape shape2 = new Rectangle(3, 4);
System.out.println(shape1.area()); // 输出圆的面积
System.out.println(shape2.area()); // 输出矩形的面积
}
}
总结
三大特性相互配合:
- 封装是基础,确保数据安全与接口清晰;
- 继承基于封装,实现代码复用与层次构建;
- 多态依赖继承和封装,使程序具备灵活性与扩展性,是面向对象编程的核心优势体现。
736

被折叠的 条评论
为什么被折叠?



