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

给零基础讲透:Java核心概念

父类/子类/继承 • 抽象类/接口 • 高层模块/底层模块

说明:本节内容主要讲清楚关于父类/子类/继承 • 抽象类/接口 • 高层模块/聚合这些概念,为后续软件设计原则与模式知识奠定基础。

一、父类、子类、继承(核心中的核心)

1.你可以把“类”理解成“事物的模板”,比如:

  1. 父类(也叫超类/基类):
    就像“手机”这个通用模板,所有手机都有“打电话、发短信”的功能,还有”品牌、价格”这些属性;
    -子类(也叫派生类):
    就是具体的手机,比如“苹果手机”“"华为手机”,它们都属于“手机”,所以能直接用父类的“打电话、发短信”功能(不用重新造),还能加自己的特色功能(比如苹果的 Face ID、华为的鸿蒙系统);
  2. 继承:
    就是“苹果手机继承了手机的所有特性”,子类“继承”父类的所有属性和方法,不用重复写代码,就像你继承了父母的某些特征一样。
    2、我们来看一段极简的代码,验证一下我们刚才的理解。这里定义了一个父类Phone,里面有品牌、价格两个属性,还有打电话、发短信两个方法。然后,我们定义了两个子类,IPhone和HuaweiPhone,它们都使用extends关键字继承了Phone类。这样,IPhone和HuaweiPhone就自动拥有了Phone类的所有属性和方法,同时还可以定义自己独有的方法,比如faceID和hongmeng。这就是继承的好处,代码复用,避免重复劳动。

    3、核心要点
    继承用关键字 extends ,Java 里子类只能继承1个父类(比如手机不能同时继承“手机”和“电脑”):子类能“复用”父类的代码,不用重复写“打电话”这种通用功能,,子类可以加自己的属性/方法,实现“通用 +个性化”。

二、抽象类:不完整的父类模板

  1. 生活场景:手机充电的困境
    需求共性:所有手机都需要“充电”,但接口不同(Lightning/Type-C)。
    传统痛点:父类无法预知所有子类的具体实现方式,写死逻辑会导致僵化。
  2. 核心概念:抽象类的定义
    只声明不实现:父类定义抽象方法(如“充电”),但不写具体代码,强制子类去实现。
    “半成品”模板:抽象类保留通用逻辑,将差异化的部分留给子类填充,实现代码复用。
  3. 代码示例
// 抽象类定义abstractclassPhone{// 通用方法实现publicvoidcall(){System.out.println("打电话");}// 抽象方法:强制子类实现publicabstractvoidcharge();}
/子类1IPhoneclassIPhoneextendsPhone{@Overridepublicvoidcharge(){System.out.println("Lightning接口");}}// 子类2:HuaweiPhone (同理实现Type-C)

4 核心要点
关键字定义:使用abstract class定义抽象类,使用abstract定义抽象方法。
不能实例化:抽象类是“半成品”,不能直接 new 对象,只能作为父类被子类继承。
必须实现:子类继承抽象类后,必须实现所有抽象方法(除非子类本身也是抽象类)。
核心作用:提取子类的“通用部分”,把“差异化部分”留空让子类实现,实现代码复用。

三、接口:纯粹的行为约定

  1. 生活中的例子:行为的抽象
    手机 (Mobile):不同的硬件设备,但具备相同的“上网”行为
    电脑 (Computer):接口定义了“能做什么”,而非“是什么”
    平板 (Pad):只要实现了“可上网”接口,就必须具备上网能力
  2. 核心概念:一份契约
    签署契约 (Implement):一旦实现了某个接口,就必须遵守接口中定义的所有约定(即实现所有方法)。
    无关身份 (Irrelevant):接口不关心你具体是什么类,只关心你是否具备该行为能力。
  3. 代码示例实现
// 接口定义interfaceCanSurfInternet{voidsurf();}// 手机实现接口classIPhoneimplementsCanSurfInternet{publicvoidsurf(){System.out.println("用5G上网");}}
  1. 核心要点
    关键字定义:使用interface定义接口,类通过implements关键字实现接口。
    不可实例化:接口本身不能直接new 对象,只能指向其实现类的实例对象。
    支持多实现:弥补单继承的局限,Java类虽然只能继承1个父类,但可以实现多个接口。
    核心作用:定义“行为标准”,解耦“做什么”和“怎么做”,提升代码的灵活性与扩展性。

四、高层模块:指挥干活的老大

  1. 生活例子:公司架构
    高层模块:销售部门,负责核心逻辑(谈单、下单),只指挥“送什么、送到哪”,不关心运输细节。
    底层模块:物流团队,负责具体执行(送货),处理“怎么送、用什么车”等底层细节。

    代码映射:软件架构
    高层模块:订单系统,调用其他代码,实现核心业务逻辑(如创建订单),不关心支付具体实现。
    底层模块:支付接口,被调用的代码,实现具体细节(如微信支付、支付宝支付的API对接)。

  2. 代码示例

    ```java // 高层模块:订单系统(核心逻辑) class OrderSystem { // 依赖抽象接口 Pay,而非具体实现 public void createOrder(double money, Pay pay) { System.out.println("创建订单成功"); pay.pay(money);// 调用底层模块 } } // 测试:高层模块代码无需修改即可扩展 classTest { public static void main(String[] args) { OrderSystem order =new OrderSystem(); order.createOrder(99.9,new WeChatPay()); order.createOrder(59.9,new AliPay()); ```

说明:依赖抽象,而非具体,OrderSystem 仅依赖 Pay 接口,与具体的微信或支付宝实现解耦,符合开闭原则。
高层模块稳定不变,新增支付方式(如银行卡)只需新增实现类,核心业务逻辑代码无需修改。
灵活扩展,通过接口隔离,高层模块可以轻松切换不同的底层实现,提升系统的灵活性。

五、总结

  1. 父类/子类/继承:子类继承父类通用功能,使用 extends 关键字,支持单继承。
  2. 抽象类:不完整的父类模板,包含通用方法与抽象方法,不能实例化。
  3. 接口:纯粹的行为约定,使用 implements 关键字,支持多实现。
  4. 高层模块:核心逻辑层,应依赖接口或抽象类,而非具体的底层细节。
http://www.cnnetsun.cn/news/1646612.html

相关文章:

  • EdgeRemover:Windows浏览器管理工具 - 安全卸载与系统优化的终极解决方案
  • MySQL 8.0 数据库双主互为热备配置
  • Cursor Pro破解完全指南:轻松解锁无限AI编程助手功能
  • 西门子1200伺服控制5轴程序:‘152a-多功能机械手与台达伺服应用‘
  • Windows上直接运行APK:告别模拟器的3种高效解决方案
  • QQ聊天数据管理实践指南:全平台数据访问与安全操作手册
  • 如何高效使用FFmpegGUI:面向新手的完整视频处理工具指南
  • 【译】 再次革新 .NET 的构建和发布方式(三)
  • 3种核心映射技术深度解析:DS4Windows实现PS手柄在Windows平台的完整兼容方案
  • 从删库到跑路?不,从卸载MariaDB开始:Linux离线部署MySQL 5.7完整避坑指南
  • 用PLECS和C代码手把手教你实现数字滤波(附完整工程文件)
  • 【Linux 物联网网关主控系统-Linux主控部分(一)】
  • 救命!2026爆款PPT一键制作工具实测,新手也能5分钟出片,告别熬夜手搓无标题
  • 快速验证电路构想:用快马平台一键生成mos管交互仿真原型
  • 3种让Windows用户告别模拟器的APK直装方案:开源工具APK-Installer全解析
  • OpenCore Configurator:告别复杂配置,三步搞定黑苹果引导设置
  • 2025届最火的六大AI学术网站实测分析
  • 2026最权威的AI辅助写作平台实际效果
  • Ostrakon-VL-8B真实案例:某连锁咖啡店通过AI巡检降低人工巡店成本65%
  • VMware vSphere Replication 9.0实战:跨存储灾备从规划到落地
  • 实战应用:基于快马平台开发企业内网服务可用性监控系统
  • SEO_详解SEO工作原理及其对业务增长的重要性
  • 百川2-13B量化模型知识蒸馏:为OpenClaw定制轻量技能模型
  • 【功率预测+储能】储能都配上了,为什么很多场站还是没把收益拉起来?
  • AG32芯片烧录神器:深度体验AGM DAP-LINK下载器的三大核心功能
  • UniversalTime:嵌入式系统毫秒级确定性时间库
  • Flutter环境配置全攻略:flutter doctor命令详解与常见问题解决
  • Python课程大作业避坑指南:以‘世界杯连连看’为例,聊聊初学者常犯的5个错误
  • SOLIDWORKS Simulation 带孔矩形板拓扑优化实战:从建模到轻量化设计
  • (实战经验)LoRA微调ChatGLM-6B避坑指南:FP16梯度问题与tokenizer修复