尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

(5)封装继承多态

(5)封装继承多态
📅 发布时间:2026/7/3 18:51:08

这三个是面向对象的三个特性。主要目的就是为了对代码进行解耦重构。

一、封装

封装就是将数据和对数据的操作封装在一个类里面,从外部不可访问,只能通过给出的访问接口对数据进行处理。

二、继承

人有父子关系、母子关系,类也有!这么做的目的主要是为了让子类不那么的冗余,所有和父类有关系的都能进行继承访问。

// 继承的语法publicclassDeriveextendsBase{}

Java语法只支持单继承,也就是说一个类最多只能有一个父类

1、构造函数

如果你构造一个子类对象,在子类对象初始化之前,父类对象要先进行初始化。
调用父类构造或者当前类的构造,构造函数必须放在第一句

publicclassDeriveextendsBase{intb;Derive(){//super()是在子类中调用父类的构造函数//如果一个父类只有默认构造函数,super()可写可不写//如果一个父类实现了有参构造,这个super()必须显示调用,传参super();b=1;}}

2、this指针

  1. this主要指向的是调用对象。
  2. 主要区分和类成员属性名、方法名相同的变量名、方法名
    this指针你可以理解为一个隐形的参数,传参在每个类方法的第一个参数位置上,指向调用的对象
publicclassBase{inta;// 在这里就是主要对参数a和类属性a进行区分publicBase(inta){this.a=a;}}

3、super指针

这个指针和this指针差不多功能,但是主要是为了区分和父类成员属性名、方法名相同的变量名、方法名。

publicclassDerive{inta;// 在这里就是主要对参数a和类属性a进行区分publicDerive(inta){// 如果父类是有参构造,需要往super()里面进行传参super()this.a=a;}}

4、final关键字

  1. final修饰变量x,x不能被修改。
  2. final修饰成员变量,成员变量必须被初始化。
  3. final修饰类,类不能被继承。
  4. final修饰类方法,方法不能被重写。

三、多态

多态就是同一种行为具有不同的表现形式。主要表现在猫狗都会叫,但是叫的行为不一样,一个“喵喵叫”,一个“汪汪叫”。
多态 = 动态绑定 + 继承 + 重写

1、多态的构成条件

  1. 必须在继承关系体系下。
  2. 必须子类重写父类的方法。
  3. 必须通过父类引用调用重写方法。

[!NOTE] 注意!!!

  • 子类方法的权限一定要大于等于父类方法的权限。
  • 被private修饰的成员方法不能被重写。
  • 被static修饰的成员方法不能被重写。
  • 被final修饰的成员方法不能被重写。
publicclassAnimal{publicvoidbark(){System.out.println("Animal叫!!!");}}-------------------------------------------publicclassCatextendsAnimal{publicvoidbark(){System.out.println("Cat叫!!!");}}-------------------------------------------publicclassMain{publicstaticvoidmain(String[]args){Animalanimal1=newCat();animal1.bark();}}

2、重载、重写

(1)重载

  • 方法名相同
  • 参数列表不同(参数的个数、顺序、类型)
  • 返回值不做要求!!!
    (2)重写
  • 必须在继承体系下
  • 子类重新定义父类的非静态、非final方法
  • 返回值、方法名、参数列表均相同

3、向上 转型、向下转型

向上转型是将子类引用赋值给父类。
向下转型是将父类引用赋值给子类(父类引用必须是子类)。
向下转型关键字instanceof

publicclassMain{publicstaticvoidmain(String[]args){// 向上转型Animalanimal=newCat();// 向下转型if(animalinstanceofCat){Catcat=(Cat)animal;}}}

相关新闻

  • AD74413R与MSP432P401R构建高精度混合信号处理系统
  • 免费AI视频增强神器:Video2X让模糊视频秒变4K超清画质
  • 惊叹!苹果 II Disk II 控制器卡:低成本实现软盘支持的传奇技术

最新新闻

  • 相机、激光雷达与事件相机动态感知原理对比
  • Raft 日志复制延迟:多数派确认不等于所有副本都健康
  • ASP.NET是如何在IIS下工作的
  • 3步搭建你的AI安全专家:SecGPT网络安全大模型实战指南
  • 多变量时序预测:VMD-SE-GRU+Transformer混合架构实战
  • WzComparerR2:解密冒险岛游戏资源的专业工具箱

日新闻

  • JMeter接口测试实战:从核心元件到复杂场景构建
  • Java Applet版刽子手游戏源码:含完整项目结构、吊杆绘图与胜负逻辑
  • 使用Apache JMeter对RoadRunner PHP应用进行性能测试与调优指南

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号