当前位置: 首页 > news >正文

【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征

第24题:Java面向对象有哪些特征

📚回答:

  • 核心特征
    Java面向对象有三大特征:封装继承多态
1. 封装
  • 定义
    封装是将对象的属性和行为隐藏起来,只对外提供访问接口。简单来说,就是“把复杂的事情藏起来,只暴露简单的使用方式”。

  • 实现方式

    • 使用private修饰符隐藏类的属性或方法。
    • 提供public的getter和setter方法来访问这些属性。
  • 好处

    • 提高代码的安全性:外部无法直接修改内部数据。
    • 提升代码的可维护性:修改内部实现不会影响外部调用者。

    💡代码示例
    以下代码展示了封装的基本实现:

classPerson{privateStringname;// 隐藏属性privateintage;// 提供公共访问接口publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}
2. 继承
  • 定义
    继承是指一个类(子类)可以复用另一个类(父类)的功能,并在此基础上扩展新的功能。

  • 实现方式
    使用extends关键字实现继承关系。

  • 好处

    • 减少重复代码:子类可以直接复用父类的属性和方法。
    • 提高代码的扩展性:子类可以在不修改父类的情况下添加新功能。

    💡代码示例
    以下代码展示了继承的基本实现:

classAnimal{voideat(){System.out.println("Animal is eating");}}classDogextendsAnimal{voidbark(){System.out.println("Dog is barking");}}
3. 多态
  • 定义
    多态是指同一个方法在不同对象中表现出不同的行为。它的三个要素是:继承重写父类引用指向子类对象

  • 实现方式

    • 子类重写父类的方法。
    • 使用父类引用指向子类对象,调用方法时执行的是子类的实现。
  • 好处

    • 提高代码的灵活性:同样的方法调用可以根据具体对象表现出不同的行为。
    • 实现“开闭原则”:对扩展开放,对修改关闭。

    💡代码示例
    以下代码展示了多态的基本实现:

classAnimal{voidsound(){System.out.println("Animal makes a sound");}}classDogextendsAnimal{@Overridevoidsound(){System.out.println("Dog barks");}}classCatextendsAnimal{@Overridevoidsound(){System.out.println("Cat meows");}}// 测试多态publicclassMain{publicstaticvoidmain(String[]args){Animalanimal1=newDog();// 父类引用指向子类对象Animalanimal2=newCat();animal1.sound();// 输出 "Dog barks"animal2.sound();// 输出 "Cat meows"}}

💡面试官视角

  • 面试官可能会问“多态的应用场景是什么?”答:比如工厂模式、策略模式等设计模式都依赖多态实现灵活扩展。
  • 面试官可能会追问“为什么需要重写?”答:重写是为了让子类能够根据自身需求重新定义父类的行为,从而实现多态。

📌专栏:大白话说Java面试题 — 01-Java基础篇

http://www.jsqmd.com/news/737272/

相关文章:

  • 避开瑞萨RA_FSP中GPT定时器的那些‘坑’:从模式选择到中断处理的实战避坑指南
  • Windows11 USB外接固态硬盘掉速排查与优化技巧
  • PHP怎么处理SOAP Web服务_PHP SOAP客户端与服务端开发【教程】
  • 题解:P14364 [CSP-S 2025] 员工招聘
  • 避坑指南:ZYNQ驱动W25Q256时,状态寄存器读写与擦除/编程的那些‘坑’
  • 新手零基础入门天梯赛:用快马生成赛题与代码框架快速上手
  • 如何深度掌控AMD Ryzen处理器:SMUDebugTool终极硬件调试指南
  • Spring Boot 2.7.5项目里,HikariCP多数据源配置的坑我帮你踩完了(附完整代码)
  • 低比特量化与3D重建:VersaQ-3D技术解析
  • OneNote插件终极指南:160+功能免费解锁完整笔记生产力
  • 从Sodaverse实践看去中心化数据网络:架构、实现与开发指南
  • MTKClient深度解析:联发科设备底层操作与逆向工程的终极工具
  • 国内专业企业VI设计公司排名榜2026 靠谱品牌升级设计公司推荐 - 设计调研者
  • 3步掌握:用NBTExplorer轻松管理Minecraft游戏数据
  • Hyper-Bagel框架:多模态AI模型的统一加速方案
  • RuleGen:从数据自动生成业务规则的工程实践与核心原理
  • 别再傻傻分不清了!用大白话+生活例子,5分钟搞懂上位机和下位机
  • 新手也能看懂的CISP-PTE备考:用SQLMap搞定三个典型SQL注入靶场(附完整命令)
  • ESP固件烧录终极指南:5分钟掌握esptool核心技巧
  • 从手机铃声到游戏配乐:聊聊那些你可能没听过的音频格式(MIDI、SMF、MMF、RTTTL)
  • [答疑]无人机集群作战,OPM还是SysML
  • 别再为IEEE论文排版头疼了!手把手教你搞定LaTeX图片与表格(附完整代码)
  • HotPlex:将终端AI工具转化为高性能、安全的生产级服务
  • 3分钟学会MTKClient:解锁联发科设备的终极工具箱
  • 终极指南:Video DownloadHelper CoApp 快速安装与使用全攻略
  • 2026年留学机构咋收费,中青留学收费合理,服务专业 - mypinpai
  • 终极指南:3分钟学会使用ArchivePasswordTestTool找回遗忘的压缩包密码
  • 若依前后端分离版部署后,登录头像不显示?从Nginx配置到文件上传路径的完整排错手册
  • LiteAttention:扩散模型中的高效注意力优化方案
  • 中兴光猫工厂模式解锁指南:5分钟获取完整管理权限的终极教程