跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Javajava

Java 面向对象三大特性:封装、继承与多态

综述由AI生成Java 面向对象编程的核心在于封装、继承与多态。封装利用访问修饰符隐藏内部细节,确保数据安全;继承通过 extends 关键字实现代码复用;多态则通过方法重载和重写提升程序灵活性。三者结合构建了高内聚、低耦合的代码架构,是 Java 开发的基础。

漫步发布于 2026/2/17更新于 2026/5/46 浏览
Java 面向对象三大特性:封装、继承与多态

Java 作为一门面向对象的编程语言,其核心支撑是封装、继承、多态三大特性。这三大特性相互关联、层层递进,构建了面向对象编程(OOP)的核心逻辑,也是 Java 代码高内聚、低耦合、可复用的关键所在。

封装:数据与行为的'保护屏障'

封装是指将对象的属性(数据)和方法(行为)结合为一个独立的整体,并隐藏对象的内部实现细节,仅通过公开的接口与外部进行交互。封装的核心目的是提高代码安全性、降低耦合度。

在 Java 中,封装主要通过访问修饰符实现,常用的访问修饰符有四种,权限从严格到宽松依次为:private(私有)、default(默认,无修饰符)、protected(受保护)、public(公共)。

使用 private 修饰的属性和方法,仅能在当前类内部访问,外部无法直接操作,避免了数据被随意修改。为了让外部访问私有属性,通常会提供 getter(获取属性值)和 setter(设置属性值)方法,并在方法中加入逻辑校验,保证数据的合法性。

public class Student {
    // 私有属性,外部无法直接访问
    private String name;
    private int age;

    // getter 方法,获取姓名
    public String getName() {
        return name;
    }

    // setter 方法,设置年龄并校验
    public void setAge(int age) {
        if (age >= 0 && age <= 150) {
            this.age = age;
        } else {
            System.out.println("年龄不合法");
        }
    }
}

封装的优势在于,当内部实现逻辑修改时,只要公开接口不变,外部代码就无需调整,极大提升了代码的可维护性。

继承:代码复用的'桥梁'

继承是指子类(派生类)继承父类(基类)的属性和方法,子类可以直接使用父类的非私有成员,同时也能扩展自身的功能。继承的核心目的是实现代码复用,简化类的设计。

在 Java 中,继承通过关键字 extends 实现,且遵循单继承原则:一个子类只能有一个直接父类,但允许多层继承(子类继承父类,父类再继承祖父类)。所有类的根父类是 Object 类,若一个类未显式声明父类,则默认继承 Object。

子类继承父类后,拥有三种能力:

  1. 继承:直接使用父类的 public 和 protected 成员。
  2. 重写:子类可以定义与父类同名、同参数列表、同返回值类型的方法,实现个性化逻辑,重写需遵循'两同两小一大'原则。
  3. 扩展:子类可以新增独有的属性和方法,丰富类的功能。

另外,父类中的 final 方法不能被重写, 类不能被继承, 关键字可用于子类访问父类的成员。

final
super
// 父类
public class Animal {
    public void eat() {
        System.out.println("动物进食");
    }
}

// 子类
public class Cat extends Animal {
    // 重写父类方法
    @Override
    public void eat() {
        System.out.println("猫吃小鱼干");
    }

    // 扩展子类独有的方法
    public void catchMouse() {
        System.out.println("猫抓老鼠");
    }
}

多态:程序灵活的'灵魂'

多态是指同一行为在不同对象上表现出不同的形态,即父类引用指向子类对象,调用方法时会执行子类的重写逻辑。多态的核心前提是继承和方法重写,其核心目的是提高代码的灵活性和扩展性。

Java 中多态的实现分为两种形式:

  1. 编译时多态:也称静态多态,通过方法重载实现,即同一个类中定义多个同名方法,参数列表(个数、类型、顺序)不同,编译阶段就确定调用哪个方法。
  2. 运行时多态:也称动态多态,通过方法重写实现,父类引用指向子类对象,运行阶段才确定调用子类的重写方法。

多态的使用需要注意:父类引用只能调用父类中声明的方法,若要调用子类独有的方法,需要进行强制类型转换。

public class PolymorphismDemo {
    public static void main(String[] args) {
        // 父类引用指向子类对象
        Animal animal = new Cat();
        // 执行子类重写的 eat 方法,体现运行时多态
        animal.eat();
    }
}

多态的优势在于,当需要新增子类时,无需修改原有代码,只需扩展新类即可,符合'开闭原则'。

封装、继承、多态三者相辅相成,封装隐藏内部细节,继承实现代码复用,多态拓展程序能力,共同构成了 Java 面向对象编程的基础。

目录

  1. 封装:数据与行为的“保护屏障”
  2. 继承:代码复用的“桥梁”
  3. 多态:程序灵活的“灵魂”
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 前端项目自动化部署流程与最佳实践
  • Spring AI:Java 生态原生 AI 框架入门指南
  • 4x Tesla P40 训练 Llama-3.3-70B 大模型技术方案
  • 使用 Obsidian 的 Git 插件将笔记同步到 GitHub 私有仓库
  • STL 中 set 与 map 的实现原理及高频算法题实战
  • ERNIE-4.5-0.3B 超轻量模型部署与能力评测指南
  • Sora2 API 调用实践及开源前端接入示例
  • 前端 PWA 技术指南:实现离线访问与应用安装
  • 2026 年前端行业现状:是夕阳还是新机遇
  • CSS 绘制圆形与三角形技巧:border 与 border-radius 实战
  • JVM 垃圾收集器:ParNew、CMS 与三色标记算法
  • Llama-Factory 最大化利用 GPU 算力资源指南
  • 基于 Rokid CXR-M SDK 的 AR 演讲提词器开发
  • HarmonyOS 6.0 应用开发:V2 装饰器@once 使用详解
  • 使用 AI 工具箱重构 Java 毕业设计商城项目
  • 深入解析 LRU 与 LFU 缓存淘汰算法
  • C++ 虚函数表实现机制详解
  • DeepSeek 各版本演进与核心差异分析
  • C语言排序算法:插入排序与希尔排序
  • 二分查找实战:旋转排序数组最小值与点名问题

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online