Java面向对象三大特性

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()); // 输出矩形的面积
    }
}
 
 
总结
 
三大特性相互配合:
 
- 封装是基础,确保数据安全与接口清晰;
- 继承基于封装,实现代码复用与层次构建;
- 多态依赖继承和封装,使程序具备灵活性与扩展性,是面向对象编程的核心优势体现。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值