Java面向对象必考点:封装、继承、多态深度揭秘

文章目录

  • Java面向对象必考点:封装、继承、多态深度揭秘
    • 封装:给代码穿上“防护衣”
      • 为什么需要封装?
      • 封装的具体实现
      • 封装的好处
    • 继承:站在巨人的肩膀上
      • 继承的基本语法
      • 继承的优势
      • 继承的注意事项
      • 继承中的访问控制
    • 多态:一个接口,多种实现
      • 多态的体现
        • 编译时多态:方法重载
        • 运行时多态:方法重写
      • 实现多态的条件
      • 多态的好处
      • 注意事项
    • 总结
    • 这三个概念是面向对象编程的核心,熟练掌握它们对于编写高质量、可维护的Java代码非常重要。
      • 📚 领取 | 1000+ 套高质量面试题大合集(无套路,闫工带你飞一把)!

Java面向对象必考点:封装、继承、多态深度揭秘

各位小伙伴们,大家好!闫工我又来啦!这次我们要聊的是Java面向对象编程的三大核心概念——封装、继承和多态。这三者可是Java面试中必考的知识点,掌握不好可能会让你在面试官面前“翻车”哦!不过不用担心,闫工今天就带着你们一起深入理解这三个概念,轻松应对面试。

封装:给代码穿上“防护衣”

封装,英文是Encapsulation,它的核心思想就是将对象的属性和行为绑定在一起,并且通过访问控制符来限制外界对对象内部数据的直接操作。简单来说,就是把一些东西藏起来,只让外界看到我们需要展示的部分。

为什么需要封装?

举个例子,假设我们有一个员工管理系统,每个员工都有一个工资属性。如果我们不进行封装,其他类可以直接修改这个工资值,这就可能导致工资被随意更改,甚至可能引发一些意想不到的问题(比如老板突然发现你的工资被改成了负数)。为了防止这种情况发生,我们就需要把工资这个属性隐藏起来,并提供一个合理的接口来修改它。

封装的具体实现

在Java中,封装主要是通过访问控制符来实现的。常见的访问控制符有四个:

  1. public:公有的,所有类都可以访问。
  2. protected:受保护的,同包内的子类可以访问。
  3. default(即不写任何修饰符):默认访问权限,只有同一包内的类才能访问。
  4. private:私有的,只能在本类中访问。

封装的关键在于将属性设置为private,并提供public的方法来对这些属性进行操作。比如:

publicclassEmployee{privatedoublesalary;// 私有属性publicdoublegetSalary(){// 公共的获取方法returnsalary;}publicvoidsetSalary(doublesalary){// 公共的设置方法if(salary>0){this.salary=salary;}else{System.out.println("工资不能为负数!");}}}

在这段代码中,salary被设置为private,外界无法直接访问它。但是我们提供了两个public方法getSalary()setSalary(double salary),通过这些方法可以间接地获取和修改salary的值。而且在setSalary方法中,我们还增加了一些逻辑判断,确保工资只能是正数。

封装的好处

  1. 数据安全性:封装可以防止外部代码随意修改对象的状态。
  2. 隐藏实现细节:外界不需要知道具体的实现方式,只需要通过提供的接口进行操作即可。
  3. 便于维护和扩展:如果需要改变属性的存储方式或者增加一些逻辑判断,只需要修改对应的getter和setter方法,而不会影响到使用这些方法的其他代码。

继承:站在巨人的肩膀上

继承,英文是Inheritance,它表示一种类之间的“is-a”关系。比如,狗是一种动物,手机是一种电子产品等等。在Java中,继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而减少代码重复,提高代码复用性。

继承的基本语法

在Java中,使用extends关键字来表示继承关系。例如:

publicclassAnimal{publicvoideat(){System.out.println("动物吃东西");}}publicclassDogextendsAnimal{// Dog类继承Animal类publicvoidbark(){System.out.println("狗叫");}}

在这段代码中,Dog类继承了Animal类的所有属性和方法。因此,我们可以创建一个Dog对象并调用它的eat()方法:

Dogdog=newDog();dog.eat();// 输出:动物吃东西dog.bark();// 输出:狗叫

继承的优势

  1. 代码复用:子类可以直接使用父类的属性和方法,无需重复编写相同的代码。
  2. 层次化结构:继承关系可以很好地体现现实世界中的层次结构。
  3. 多态的基础:后续我们会讲到,继承是实现多态的前提之一。

继承的注意事项

  1. 单继承:Java只支持单继承,也就是说一个类只能有一个直接父类。但是可以通过接口来实现多重继承的效果。
  2. 构造方法问题:在子类中如果不显式地调用父类的构造方法,默认会隐式调用父类无参数的构造方法。如果父类没有无参数构造方法,则会导致编译错误。
  3. 避免过度继承:虽然继承可以提高代码复用性,但是过度使用继承会导致类之间的耦合度过高,增加维护难度。

继承中的访问控制

在Java中,继承时子类对父类成员的访问权限取决于父类成员的修饰符:

  • public:子类可以访问。
  • protected:子类可以访问。
  • default:如果子类和父类在同一包内,可以访问;否则无法访问。
  • private:子类无法访问。

多态:一个接口,多种实现

多态,英文是Polymorphism,它允许同一个方法在不同的对象中表现出不同的行为。简单来说,就是“同样的接口,不同的实现”。

多态的体现

多态主要体现在以下几个方面:

  1. 编译时多态(静态多态):通过方法重载实现。
  2. 运行时多态(动态多态):通过继承和方法重写实现。
编译时多态:方法重载

方法重载是指在同一个类中定义多个同名但参数不同的方法。Java编译器会根据调用时传递的参数类型和数量来决定具体调用哪个方法。

例如:

publicclassCalculator{publicintadd(inta,intb){returna+b;}publicdoubleadd(doublea,doubleb){returna+b;}}Calculatorcalc=newCalculator();System.out.println(calc.add(1,2));// 调用int版本,输出3System.out.println(calc.add(1.5,2.5));// 调用double版本,输出4.0
运行时多态:方法重写

方法重写是指在子类中重新定义与父类同名且参数相同的方法。运行时会根据实际对象类型来决定调用哪个方法。

例如:

publicclassAnimal{publicvoidsound(){System.out.println("动物发出声音");}}publicclassDogextendsAnimal{@Override// 重写sound方法publicvoidsound(){System.out.println("汪汪叫");}}Animalanimal1=newAnimal();animal1.sound();// 输出:动物发出声音Dogdog=newDog();dog.sound();// 输出:汪汪叫// 多态体现:父类引用指向子类对象Animalanimal2=newDog();animal2.sound();// 输出:汪汪叫

实现多态的条件

  1. 继承关系:必须是父子类关系。
  2. 方法重写:子类必须重写父类的方法。
  3. 向上转型:使用父类引用指向子类对象。

多态的好处

  1. 灵活性和扩展性:增加新类型时,只需要实现相同的接口即可,无需修改原有代码。
  2. 简化调用者代码:调用者只需要知道父类的接口,而不需要关心具体是哪个子类的对象。

注意事项

  1. 方法重写规则
    • 子类方法的参数必须与父类方法完全一致(类型、顺序)。
    • 子类方法的返回值类型必须与父类相同或更严格。
  2. 无法重写静态方法:因为静态方法属于类,而不是对象。
  3. final方法不能被重写:如果父类的方法被声明为final,则子类无法重写它。

总结

  • 封装(Encapsulation):通过访问修饰符和getter/setter方法来隐藏实现细节,保护数据不被随意修改。
  • 继承(Inheritance):允许一个类继承另一个类的属性和方法,提高代码复用性。
  • 多态(Polymorphism):同一个接口可以有多种实现方式,增强代码的灵活性和扩展性。

这三个概念是面向对象编程的核心,熟练掌握它们对于编写高质量、可维护的Java代码非常重要。

📚 领取 | 1000+ 套高质量面试题大合集(无套路,闫工带你飞一把)!

成体系的面试题,无论你是大佬还是小白,都需要一套JAVA体系的面试题,我已经上岸了!你也想上岸吗?

闫工精心准备了程序准备面试?想系统提升技术实力?闫工精心整理了1000+ 套涵盖前端、后端、算法、数据库、操作系统、网络、设计模式等方向的面试真题 + 详细解析,并附赠高频考点总结、简历模板、面经合集等实用资料!

✅ 覆盖大厂高频题型
✅ 按知识点分类,查漏补缺超方便
✅ 持续更新,助你拿下心仪 Offer!

📥免费领取👉 点击这里获取资料

已帮助数千位开发者成功上岸,下一个就是你!✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1169504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 不会上下文工程,还敢说自己是大模型开发者?小白也能秒变AI大神的全攻略

最近在做Deepresearch以及刷到一个不错的文章:context-engineering-guide,这篇文章揭示了提示工程以及上下文过程在智能体应用开源流程中,包括Deepresearch,MCP在内的一些概念,起到了非常重要的作用! Conte…

广州一日游大致安排

广州一日游大致安排🌅 08:00 抵达广州东站 → 早餐(步行 5–10 分钟) 广州东站周边就是天河区核心,美食密度极高。 推荐早餐(任选其一)点都德(林和中路店) 经典广州早茶,离广州东很近 推荐:虾饺皇、凤爪、肠…

【AI技术yyds】百度搜索新范式、多智能体协作...信息检索领域最新研究成果全解析,开发者必看!从AI搜索到多模态推荐,一篇搞定所有前沿技术!

信息检索领域前沿研究观察:从AI搜索到多模态推荐 最近在信息检索领域看到了不少有意思的研究进展,从百度搜索提出的AI搜索范式到各种新颖的检索增强方法,这些工作都在试图解决当前搜索和推荐系统面临的实际问题。今天想和大家分享一下这些研究…

从排行榜看行业标杆:2026年液压拉力试验机/液压万能试验机十大品牌TOP4综合评测 - 品牌推荐大师1

液压拉力/万能试验机是现代工业与科研中用于测定金属、非金属、复合材料等力学性能的关键设备,广泛应用于航空航天、汽车制造、建筑工程、新材料研发及高等院校等众多领域。随着“中国制造2025”的深入推进与产业升级…

2026年 景观鱼池工程厂家推荐榜单:专业设计/假山鱼池/生态工程,匠心打造庭院水景艺术 - 品牌企业推荐师(官方)

2026年景观鱼池工程厂家推荐榜单:专业设计/假山鱼池/生态工程,匠心打造庭院水景艺术 在现代景观设计与庭院营造中,鱼池已从传统的水体点缀演变为融合生态、艺术与技术的综合性工程。它不仅承载着美化环境、陶冶情操…

AI Agent开发天花板:LangGraph构建DeepResearch实战,代码小白也能秒会的神操作!

上一篇内容我们讲解了怎么构建DeepResearch两个比较核心的组件:确定用户研究范围以及研究,这两个组件可以大致满足用户输入研究主题或者查询,然后输出一个研究结果,不过这个对于系统来说大概率会遇到当用户查询相对复杂&#xff0…

卫星图像匹配 - MKT

卫星图像匹配 1 ISPRS2024 | 视觉语言模型 | 基于Transformer和视觉基础模型的跨视角遥感图像检索方法 A Transformer and Visual Foundation Model-Based Method for Cross-View Remote Sensing Image RetrievalarXi…

【AI新突破】DeepResearch开源:让AI自己搞研究,程序员解放了!附保姆级代码解析+实战教程[特殊字符]

引言 在人工智能快速发展的今天,如何构建一个能够进行深度研究、自主学习和迭代优化的AI系统成为了技术前沿的重要课题。Gemini开源的DeepResearch一周收获7.9k Star,Google的开源项目Gemini DeepResearch技术通过结合LangGraph框架和Gemini大语言模型&…

硬核干货 | 从原型到生产:Anthropic多智能体系统构建全攻略,性能提升90%的秘密都在这里!

Anthropic 公司在 2025 年 6 月 13 日发表了一篇名为《如何构建多智能体研究系统》的文章。 Anthropic 的研究功能利用多个 Claude 智能体(Agent)更高效地探索复杂主题。本文将分享在构建这个系统过程中遇到的工程挑战以及所学到的经验。 Claude 现已具…

RAG开发必看:结构化数据的5种骚操作,小白程序员也能轻松掌握

大家好!今天来聊聊如何在RAG应用中更好地利用结构化数据。很多同学可能觉得RAG主要是处理文本文档,但其实结构化数据也能发挥很大作用。我总结了5种实用的方法: 1. 直接存储行数据 最简单直接的方式就是把数据表的每一行当作一个独立的chun…

2026年 无痕内衣品牌实力推荐榜:无缝文胸与女士内衣舒适科技深度解析,甄选优质女性内衣厂家 - 品牌企业推荐师(官方)

2026年无痕内衣品牌实力推荐榜:无缝文胸与女士内衣舒适科技深度解析,甄选优质女性内衣厂家 随着女性自我意识的觉醒与消费理念的升级,内衣市场正经历一场深刻的“舒适革命”。传统钢圈、蕾丝、缝线带来的束缚与不适…

Adam自适应学习率稳医疗模型AUC

📝 博客主页:jaxzheng的CSDN主页 Adam自适应学习率:医疗AI模型AUC稳定性的关键突破目录Adam自适应学习率:医疗AI模型AUC稳定性的关键突破 引言:医疗AI性能的隐性危机 一、技术本质:Adam为何能“稳住”AUC&a…

API已死,模型永生?揭秘AI创业公司从“包装“到“自研“的逆袭之路,小白也能上车!

现在,大部分AI创业公司都是调用大厂的API来做产品。这样做目前没问题,但是按照历史规律,每家有野心的AI公司最后都会训练自己的模型——哪怕一开始只是做个简单封装的公司也不例外。为什么?因为训练模型的门槛正在快速下降。模型蒸…

直播录制教程如何录制高清直播回放与剪辑推荐录制软件与工具

如果你是一名直播录制爱好者,或者是主播在寻找更高效的直播回放录制和剪辑工具,那么这篇文章将为你推荐一系列适合的直播录制软件及工具。无论你是需要B站的录播姬、blrec等工具,还是在寻找弹幕转换、视频压制和WebHook上传等功能&#xff0c…

【爆肝整理】程序员必看!2025年大模型/AI技术50篇必读论文,不看后悔一年![特殊字符]

近年来,AI工程领域发展迅猛,各种新技术层出不穷。对于想要在这个领域深耕的工程师来说,掌握核心知识显得尤为重要。本文整理了AI工程10个关键方向的50篇必读论文和资源,涵盖大语言模型(LLM)、基准测试、提示工程(Prompting)、检索…

新电脑一些常用设置

1、设置F2为重命名键 (fnesc),就开启了f1-f12系统默认快捷键模式。

2026年GEO源代码源头哪家靠谱?品质之选汇总 - 源码云科技

2026年GEO源代码源头哪家靠谱?品质之选汇总2026年AI搜索风口全面爆发,GEO优化已然成为企业引流获客的核心抓手,无论是互联网公司创业还是传统行业转型,找对靠谱的GEO优化源码源头都能少走无数弯路。市面上GEO优化服…

CentOS 7.9 完美部署指南:Go语言环境搭建与Oracle/MySQL数据库连接全攻略

引言:为什么选择CentOS 7.9作为Go开发环境? 作为企业级Linux发行版的常青树,CentOS 7.9凭借其卓越的稳定性和长期支持,成为众多开发者和企业的首选服务器操作系统。当我们将现代化的Go语言与CentOS 7.9结合,特别是需要连接Oracle和MySQL这两种在企业中广泛使用的数据库时…

2026年优质GEO系统源码源头盘点,稳定可靠之选 - 源码云科技

2026年优质GEO系统源码源头盘点,稳定可靠之选随着AI搜索用户规模突破5.15亿,GEO优化早已不是营销圈的新鲜词,而是企业抢占算法流量的核心抓手。2026年GEO优化市场规模预计飙升至30亿元,同比暴涨11000%,越来越多创…

2026年 高低温实验箱厂家推荐榜单:恒温恒湿/交变实验箱品牌深度解析,精准控温与耐久品质之选 - 品牌企业推荐师(官方)

2026年高低温实验箱厂家推荐榜单:恒温恒湿/交变实验箱品牌深度解析,精准控温与耐久品质之选 在现代工业制造、科研实验与产品质量验证领域,环境可靠性测试已成为不可或缺的关键环节。高低温实验箱、恒温恒湿实验箱及…