news 2026/4/22 12:02:38

Java中的三大特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中的三大特性

Java 的三大特性:封装、继承、多态

Java 是典型的面向对象编程语言(OOP),其最核心的三大特性就是封装(Encapsulation)继承(Inheritance)多态(Polymorphism)。这三大特性是 Java 设计的基础,帮助实现代码的可重用性、可维护性和灵活性。

1. 封装(Encapsulation)

定义:将对象的属性(数据)和行为(方法)绑定在一起,并尽可能隐藏对象的内部实现细节,只对外暴露必要的接口。

核心思想: “高内聚,低耦合” —— 数据保护 + 信息隐藏。

实现方式

  • 使用访问修饰符(private、protected、public、默认)
  • 属性私有化(private)
  • 提供公共的 getter/setter 方法

示例

publicclassPerson{privateStringname;// 属性私有privateintage;// 公共 getter/setterpublicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){if(age>0&&age<150){// 封装时可加入数据校验this.age=age;}}}

优点

  • 保护数据安全(防止外部随意修改)
  • 提高代码维护性(内部实现可随意修改,只要接口不变)
  • 便于单元测试和模块化开发
2. 继承(Inheritance)

定义:子类(派生类)可以继承父类(基类)的属性和方法,实现代码复用。

核心思想: “is-a” 关系(子类是一种父类)。

实现方式

  • 使用extends关键字(类继承)
  • Java 只支持单继承(一个类只能继承一个父类),但可通过接口实现多继承效果

示例

classAnimal{publicvoideat(){System.out.println("吃东西");}}classDogextendsAnimal{// Dog 是 Animalpublicvoidbark(){System.out.println("汪汪");}}publicclassTest{publicstaticvoidmain(String[]args){Dogdog=newDog();dog.eat();// 继承自 Animaldog.bark();// 自身方法}}

优点

  • 代码复用,避免重复编写
  • 建立类层次结构,便于管理

注意事项

  • 子类可重写(override)父类方法
  • 使用super关键字调用父类构造器或方法
3. 多态(Polymorphism)

定义:同一接口,不同实例执行时表现出不同的形态。简单说:“一个接口,多种实现”。

两种实现形式

  1. 编译时多态(方法重载 Overloading):同一个类中,方法名相同、参数列表不同
  2. 运行时多态(方法重写 Overriding):父类引用指向子类对象,调用被重写的方法时执行子类版本

运行时多态是 Java 多态的核心

示例(运行时多态):

classAnimal{publicvoidmakeSound(){System.out.println("动物叫声");}}classDogextendsAnimal{@OverridepublicvoidmakeSound(){System.out.println("汪汪");}}classCatextendsAnimal{@OverridepublicvoidmakeSound(){System.out.println("喵喵");}}publicclassTest{publicstaticvoidmain(String[]args){Animala1=newDog();// 向上转型Animala2=newCat();a1.makeSound();// 输出:汪汪(运行时决定调用 Dog 的版本)a2.makeSound();// 输出:喵喵}}

实现条件(运行时多态):

  • 有继承关系
  • 子类重写父类方法
  • 父类引用指向子类对象(向上转型)

优点

  • 提高代码扩展性和灵活性
  • 实现“面向接口编程”,降低耦合(如 List list = new ArrayList<>())
三大特性对比总结表
特性核心目的关键字/机制典型应用场景
封装数据隐藏与保护private + getter/setterPOJO 类、业务实体
继承代码复用extends建立类层次(如 Animal → Dog)
多态灵活性与扩展性override + 向上转型框架设计(如 Spring、集合框架)
实战建议
  • 优先使用封装保护数据(所有属性 private)
  • 合理使用继承建立 is-a 关系,避免滥用(组合优于继承)
  • 充分利用多态实现解耦,面向接口/抽象类编程

这三大特性相互配合,是 Java 面向对象编程的精髓。掌握它们,你就能写出更优雅、更可维护的 Java 代码!

如果你想深入某个特性(如多态的 JVM 实现机制、抽象类 vs 接口等),随时告诉我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 5:01:56

多模态融合趋势下,静态图像如何焕发动态生命力?

多模态融合趋势下&#xff0c;静态图像如何焕发动态生命力&#xff1f; 引言&#xff1a;从静态到动态的视觉进化 在人工智能生成内容&#xff08;AIGC&#xff09;迅猛发展的今天&#xff0c;多模态融合已成为大模型演进的核心方向。文本、图像、音频、视频等信息形态正被前所…

作者头像 李华
网站建设 2026/4/17 14:13:32

某在线教育平台如何用Sambert-HifiGan提升用户体验,转化率提升40%

某在线教育平台如何用Sambert-HifiGan提升用户体验&#xff0c;转化率提升40% 引言&#xff1a;语音合成的体验革命——从“能听”到“动情” 在在线教育领域&#xff0c;学习内容的呈现方式直接影响用户的注意力、理解效率和情感共鸣。传统的课程讲解多依赖真人录音或机械式TT…

作者头像 李华
网站建设 2026/4/16 15:49:54

显存不足也能跑I2V?Image-to-Video镜像优化让GPU利用率提升200%

显存不足也能跑I2V&#xff1f;Image-to-Video镜像优化让GPU利用率提升200% 背景与挑战&#xff1a;图像转视频的显存瓶颈 随着多模态生成模型的快速发展&#xff0c;Image-to-Video&#xff08;I2V&#xff09; 技术正成为内容创作、影视特效和AI艺术领域的新宠。然而&#xf…

作者头像 李华
网站建设 2026/4/19 22:32:18

vue+nodejs城市供水管网爆管预警系统_dvklg15y

文章目录 系统概述核心功能模块技术优势应用价值 项目技术介绍开发工具和技术简介nodejs类核心代码部分展示结论源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 VueNode.js城市供水管网爆管预警系统是一款基于现代Web技术的智…

作者头像 李华
网站建设 2026/4/7 12:35:30

专科生必备8个降AI率工具,高效避坑指南

专科生必备8个降AI率工具&#xff0c;高效避坑指南 AI降重工具&#xff1a;专科生论文写作的得力助手 随着人工智能技术在学术领域的广泛应用&#xff0c;越来越多的专科生开始面临“论文AIGC率过高”的问题。无论是课程作业还是毕业论文&#xff0c;AI生成的内容容易被系统识别…

作者头像 李华
网站建设 2026/4/18 7:30:48

24小时黑客松:用M2FP快速构建人体解析应用

24小时黑客松&#xff1a;用M2FP快速构建人体解析应用 在黑客松比赛中&#xff0c;时间就是一切。当你决定开发一款基于人体解析的创意应用时&#xff0c;最不想把宝贵时间浪费在环境搭建和模型部署上。M2FP&#xff08;Mask2Former for Parsing&#xff09;作为当前最先进的人…

作者头像 李华