Day12 继承、final、super、覆写、多态

泰森多面体Voronoi 3D-V5.0 功能介绍 Abaqus Voronoi3D 阅读详情

1.面向对象

1.1 Extends

1.1.1 是什么

继承:

         1.继承是从已有类中,派生出新的类,新的类拥有父类的属性和行为,并且还能扩展新的属性和行为,

         2.java中只支持单继承,不支持多继承,这样可以让java中的继承关系比较简单

         一个类只能有一个父类,但是一个父类可以有很多子类,易于维护和管理

         为了解决单继承功能变弱问题,java提出了接口,一个类可以实现多个接口

         3.继承是可以传递的,比如A继承B,B继承C, 则A也会拥有C的功能

         4.私有属性和构造方法是不能被继承的

         5.如果一个类没有显示继承其他类,则该类继承Obiect

         java.lang.Object 是 java提供的根类(祖宗)

         Object中的功能,是所有类对象都有的

1.1.2 能做什么

解决的问题:

         提高了代码效率,提升了代码的重用性

1.1.3 怎么用

语法:

          class 子类名 extends 父类名{ }

1.2 super

1.2.1 是什么

super:

         1.官方说法是保存了父类型特征

         2.在有继承的关系的体系中,可以通过super保存父类的数据

1.2.2 能做什么

         1.用在成员、构造方法中,区分父类和子类同名的数据(同名后,子类的优先级高于父类,就需要super.xxx才行)

         2.用在子类构造方法中,调用指定的父类构造方法

         语法: super(参数);必须在子类构造方法的第一行

         如果子类构造方法中 没有使用this(xxx) 也没有使用super(xxx)则有一个super()去调用父类的无参构造

         this(xxx)和super(xxx)都必须出现在构造方法第一行,也就意味着他们两个不能同时出现

         3.this和super都不能出现在静态上下文中

1.2.3 怎么用

1.2.3.1 区分父类同名属性

1.2.3.2 调用父类指定构造方法

         构造方法私有化之后,就不能再被继承了

         因为子类构造方法中就需要调用父类的构造方法,一旦私有化,就会因为权限问题访问不了

1.3 Override

1.3.1 是什么

         Override 是方法的重写/覆写/覆盖,复写特指成员方法,除了成员方法,其他的都不能覆写

1.3.2 应用场景

1. 什么时候需要对父类方法需要覆写?

           当父类的功能满足不了子类的需求的时候

2.覆写条件

           2.1 有继承关系的体系中

           2.2 方法名必须一致,如果方法名不一致,就是两个方法了

           2.3 参数列表必须一致,如果参数列表不一致,这就是方法重载,也是两个方法

           2.4返回值必须一致

           2.5不能有更宽范的异常(异常只能越来越少)

           2.6 不能有更低的访问权限

3.覆写的意义

         功能越来越强

         使用范围越来越广

         错误越来越少

         @Override是源码注解,在编译的时候,判断该方法是否是覆写的方法,防止写错,仅此而已,生成class之后该注解就会被去掉。

         如果不加,比如方法名写错了,那么也就是两个方法,但是加上@Override就会进行校验操作

1.4 Final

1.4.1 是什么

final: 是修饰符,表示最后的,最终的,不可更改的

类:final修饰的类 不能被继承

变量:没有默认值 不能二次赋值,必须显式赋值(不能有不赋值的情况)

方法:final修饰的成员方法不能被覆写

final 修饰的静态变量,一般称为常量,public static final xxxx; 常量名建议全部大写

1.4.2 怎么用

深入 final, final 修饰的引用类型

1.5 多态

1.5.1 软件设计六大原则

1 单一职责原则:

           原则思想:一个方法只做一件事,一个类只负责一个职责,当然当前职责改动,不会影响其他程序

           常识原则,几乎所有程序员都会遵循这个原则

           优点:降低类和类之间的耦合度,提高可读性,可维护性,可扩展性,降低可变性的风险

2 里氏替换原则:

           原则思想:能使用父类的地方,就一定可以使用子类

           子类还可以扩展父类的功能,但是不能更改父类的功能,并且子类还可以有自己特有的功能

           优点:增加了程序的健壮性,即使有了新的子类,原子类不受影响,可以正常执行

3 依赖倒置原则

           原则思想:高层次不应该依赖低层次,都应该依赖于抽象

           优点:拥抱多种变化,可以减少需求变化带来的工作量

4 接口隔离原则

           原则思想:类和接口之间应该建立在最小的接口上

5 迪米特法则

           原则思想:又称为最少知识原则,一个对象尽可能的少了解其他对象

           一个类中尽量减少对其它类的依赖

6 开闭原则

           原则思想:对修改关闭,对扩展开放

           尽量通过扩展软件实体来解决需求的变化,而不是通过修改已有的代码来完成变化

1.5.2 是什么

什么是多态:

           多态就是里氏替换原则的一种体现

                      能使用父类的地方就一定可以使用子类

           多态就是父类引用指向子类对象

                  父类引用:使用父类类型 创建的引用类型变量

                  指向:通过这个引用可以找到谁

                  通过父类创建的一个引用类型变量 ,找到了子类的对象

                  父类类型   变量名  =   new   子类();

                  Animal a = new Cat();多态

1.5.3 怎么用

多态的几种形式:

           1 直接多态: 父类 变量 = new 子类();

           2 形参/实参: 参数列表用父类声明,调用方法 传递子类对象

           

           3 返回值多态: 返回值类型是父类类型,但返回的对象 是子类对象

         

         

          

           

1.5.4 为什么这么用(优点)

1.5.5 缺点

            丢失子类特有的属性

1.5.6 多态属性调用

多态进行属性调用:

           1.父类没有的,都调用不了(因为多态缺点,丢失子类特有的属性) 

           2.父类有的,子类没有的, 执行父类

           3.父类和子类都有,除了成员方法执行子类,其他全部执行父类(因为只有成员方法可以覆写) 

android 蓝牙通讯demo android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。 立即下载

相关推荐

Comsol 超声空化气泡仿真

当液体中受到高能量的超声波作用时,液体中的压力会发生剧烈变化,形成局部的低压区域。当液体中的压力降低到饱和蒸汽压以下时,就会发生空化现象,即液体中形成微小气泡。这种空化常用于一些工业应用,如清洗、乳化、混合等。这种空化常用于一些医学和生物学应用,如碎石术、肿瘤治疗、细胞破碎等。超声空化的应用非常广泛。在医学领域,超声空化广泛应用于诊断和治疗,如超声造影、超声刀、超声碎石术等。在工业领域,超声空化可用于清洗、乳化、混合等工艺。此外,超声空化还在食品加工、化学合成、环境保护等领域有着重要应用。

声学黑洞仿真工作室 2556

final类

1.final类不能有子类 2.final方法不能被子类覆写 3.final声明的变量即为常量,常量不能被修改

firedinner的专栏 1786

【Godot4自学手册】第一节配置Godot运行环境

Godot是一款自由开源、由社区驱动的 2D 和 3D 游戏引擎!它是一款功能丰富的跨平台游戏引擎,可以通过统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。游戏可以一键导出到多个平台,包括主流的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)、基于 Web 的平台以及主机平台。

zhaoyang314的博客 5984

Day12继承、final、super、覆写、多态

1.继承(extends) 1.1继承是什么? 1.继承(extends)是从已有类中,派生出新的类,新的类拥有父亲的属性和行为,并且还能扩展新的属性和行为 2.java中只支持单继承,不支持多继承,这样可以让java中的继承关系比较简单。 一个类只能有一个父类,但是一个父类可以拥有多个子类,易于维护和管理。 为了解决单继承功能变弱的问题,java提出了接口,一个类可以实现多个接口 ...

wzhty125的博客 159

IAR9.X半主模式异常解析:为何硬件复位后仍陷调试状态?

本文深入解析了IAR 9.X半主模式异常问题,探讨了硬件复位后MCU仍陷调试状态的原因及解决方案。通过分析半主模式工作机制,提供了禁用半主功能、重写低级IO函数等具体方法,并给出了版本兼容性处理和调试与量产配置分离的优化建议,帮助开发者有效解决复位异常问题。

oo7890的博客 605

一文详解AUTOSAR COM ComSignal结构体

ComSignalLength指定信号的长度,以字节为单位,影响数据的解析范围和精度。比如车速信号若为UINT16类型,ComSignalLength=16。这里需要注意必须ComSignalLength与ComSignalType匹配(比如FLOAT32类型需配置ComSignalLength=32),超出实际物理值范围时需配置缩放(Scaling)参数。ComSignalType定义信号的物理数据类型,决定如何解析原始字节数据。

menghuyouyou的博客 942

java 封装 继承 final super 方法覆写

一 封装 1.1 封装的概念 封装是把对象的所有组成部分组合在一起,封装使用访问控制符将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,只提供公开的接口即可. 1.2 封装的作用 适当的封装可以让代码更容易理解和维护,也加强了代码的安全性。 1.3 Package包机制 限制的是编译之后的class文件的保存目录,和源文件无关,eclipse中,源文件也必须在这个目录中,这是eclipse中的问题,和package无关 ja...

weixin_48788281的博客 170

【学习体会】Lighttools8.4.0:简单光学系统实例

添加球型光源(SphereSource)和表面接收器: 对光线模拟的参数进行设置: 光线追踪-模拟输入 要追踪的光线总数,决定模拟的准确度,总数越多,准确度越高,当然耗时更多 预览光线数量是模拟之后可以看到的示意光线(黑线),一般是100~1000,随意设置 点击,开始模拟: (模拟结果) 如果光线太多,则会出现,可以看到剩余时间 照度分析: 分析-照度显示-光栅图表 ...

LeonJin的博客 1万+

JAVA学习 DAY12 继承和多态【万字长文!一篇搞定!】

本文是Java学习系列笔记,重点讲解继承和多态两大核心特性。在继承部分,详细介绍了继承的概念、语法规则、父类成员访问规则、super关键字使用、构造方法执行规则及初始化顺序,并分析了protected关键字和final关键字的作用。在多态部分,深入探讨了多态的实现条件、重写规则、动态绑定机制、向上转型与向下转型,以及多态的优缺点和常见陷阱。文章通过大量代码示例演示继承与多态的实际应用,帮助读者理解面向对象编程的核心思想,掌握Java中代码复用的两种方式(继承与组合),并提供了多态在实际开发中的典型应用场景。

HRDMN的博客 1937

《中国电信运营商骨干网:历史、现状与未来演进》系列 第一篇:中国骨干网全景图:一级运营商与专用网络的演进

揭秘国家信息高速公路!一文读懂什么是骨干网,它如何支撑我们的数字生活,以及电信、联通、移动、广电等巨头如何构建这张“国家级动脉”。

maqh_csdn的博客 2037

在YOLO中扩充新类别并且不影响旧类的识别精度

让我们先从简单的部分开始:用我们的新类训练自定义 YOLOv8 模型。在本教程中,我们将向模型添加车牌类。我们将使用Roboflow 中的一个数据集。这个数据集有两个车牌类。在开始训练之前,我们还必须对库进行一些更改。为了节省时间,我还将本教程中我们将进行的更改转换为补丁该补丁包含多项更改,但大多数更改都用于指南的下一部分。if RANK!= -1:是的,我们将编写一个回调。我们希望将此自定义训练模型的头部与 COCO 预训练模型中的旧头部一起使用。

如果想成为中心,那么就到中心去吧。 1225

day11 继承、super、final、覆写

继承 1.1 是什么 java 中只支持单继承,一个类只能有一个父类 什么是继承 : 提高代码的复用性,父类的功能,子类可以直接使用,使子类功能更加强大 在java中 使用extends 关键字表示 语法 : public class 类名 extends 父类名{ 类体 } 目的 : 提高代码重用性 一个类如果没有显示继承另外一个类的话,那么该类默认继承 Object java.lang.Object 是java中的祖类(祖宗) 也就意味着 Objec.

鹰与嘤的博客 168

CMake入门教程【基础篇】CMake+Visual Studio2022构建C++项目

CMake+Visual Studio2022搭建C++环境

小鱼酱的博客 4971

Day11_封装、继承、final、super、覆写

一、封装 Package Import 权限控制 二、继承 是什么 能做什么 怎么用 三、Super 是什么 能做什么 怎么用 注意 this(...) 和 super(...) 不能同时出现 如果没有this(...) 和 super(...) ,默认构造方法第一行会有super()调用父类无参构造 如果构造方法私有化,则该类不能被继承 ...

qq_26942049的博客 101

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【JAVA OOP】Day08 继承、super关键字、方法的重写、final关键字

Day08目标:理解继承的意义及用法;掌握super关键字的用法;理解super在继承中的意义;理解何时需要重写方法;掌握方法重写的语法及特点;掌握final关键字的用法。

HLJ_Student的博客 977

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

day11继承

Day11 继承 1.1 是什么[ java 中只支持单继承,一个类只能有一个父类 什么是继承 : 提高代码的复用性,父类的功能,子类可以直接使用,使子类功能更加强大 在java中 使用extends 关键字表示 语法 : public class 类名 extends 父类名{ 类体 } 目的 : 提高代码重用性 *非静态方法可以被继承和重写 *静态属性 静态方法 非静态属性都可以被继承和隐藏 但是不能被重写 一个类如果没有显示继承另外一个类的话,那么该类默认继承 Obj

Yzj123456125的博客 178

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大数据学习--day10(继承-权限-super-final-多态-组合)

继承-权限-super-final-多态-组合 权限修饰符 内容 public protected default(不写就是它) private 作用: 修饰类只可以publicdefault 修饰方法 修饰属性 ...

diaobiaorou8393的博客 142

继承和多态

继承和多态 1, 继承 1.1 继承的概念 1.2 继承的格式 1.2.1 在继承关系上"子类就是一个父类",也就是说,子类可以被当做父类使用, ​ 例如:“父类是员工,子类是老师,”老师就是一个员工,他们是 is–a关系 1.2.2 父类定义格式 ​ public class 父类名称{ ​ //… ​ } ​ 子类定义格式 ​ public class 子类名称 extemds 父类名称{ ​ //… } 代码实现:

weixin_48064839的博客 419

day_15、 封装、继承、super 、 final

一、封装 1、概述 不直接提供访问的数据,而是提供访问的接口。 2、包机制 package: 设置的是编译之后的class文件的保存目录,和源文件没有关系 如果没有设置package语句,则class文件和 java文件在同目录 作用 1.为了解决命名冲突问题 2.package语句只能出现在java源文件的第一行 3.通常采用公司域名倒序的方式, 例如:com.tledu.oa.system com.公司名.项目名.模块名 4.完整的类名是带有包名的 ​ 带有包名的类: ​ 编译: javac

natural_rise的博客 151

JavaSE基础学习day2--继承多态

继承和多态的相关内容

m0_75058032的博客 1098

java练习-继承和多态05

目录1 继承的概念2 this和super的区别和应用3 继承中的面试题14 继承中的面试题25 方法重写6 final关键字引入7 面试题:final修饰局部变量的问题8 final修饰变量的初始化时机9 多态的概念10 多态的练习题-看程序写结果 1 继承的概念 继承概述: 把多个类中相同的内容给提取出来定义到一个类中。 如何实现继承呢? Java提供了关键字:extends 格...

Cui_Cherry的博客 851

Java应用基础 Day3

本文系统梳理 Java 面向对象核心知识,涵盖类与对象、封装、继承、多态等关键概念,解析对象内存结构、构造方法、方法覆写及 Final 关键字,帮助读者构建完整的面向对象编程知识体系。

qq_46257719的博客 687

【JavaSE全面教学】Java继承与多态Day7(2026年)

本文介绍了Java面向对象编程中的继承和多态两大核心特性。继承通过extends关键字实现代码复用,子类可以继承父类的属性和方法,同时支持方法重写(Override)来修改父类行为。super关键字用于访问父类成员和构造方法。多态则允许同一行为在不同对象上表现出不同形态,主要通过方法重写实现。文章还对比了重写与重载的区别,并强调了继承和多态在Java面试中的重要性。

我是一颗柠檬的博客 532

Java_Day16:继承、重载重写及this、super、final关键字

面向对象4.0 1.继承 1.1 有其父才有其子 2.继承带来的问题 2.1 父类的方法不一定合适子类 开发中父类的方法继承给子类使用,但是子类使用不太符合子类的情况,如果子类方法重新定义,重新命名,又会导致代码冗余,开发压力较大。 2.2 重写【Override】 前提条件 1. 重写是存在与继承中子类,或者【遵从中的实现类】 2. 重写情况下要求子类中的方法和父类中的方法,方法声明完...

zaq74700的博客 263

JavaSE Day8

本节内容 1.面向对象思维 2.面向对象的3大特征:继承 3.super关键词 4.方法的重写 5.final关键词 一、面向对象编程: 面向对象编程: 1.面向对象编程是一种思维方式。 特点: 1.先整体,后局部 2.先抽象,后具体 3.能做什么,具体做什么 二...

a18345175021的博客 103

12.25学习Java的day09【继承、final、类初始化、实例初始化】

day09【继承、初始化】 今日内容 继承 方法重写 this关键字 super关键字 final修饰符 类初始化 实例初始化 学习目标 能够写出类的继承格式 能够说出继承的特点 能够说出方法重写的概念以及和重载的区别 能够使用this关键字解决问题 能够使用super关键字解决问题 掌握final的使用 能够分析类初始化过程(为面试服务) 能够分析实例初始化过程(为面试服务...

weixin_45506970的博客 501
上一篇: Day11 this、static、封装
下一篇: Day13 多态、Object、抽象、接口
java_yangXL
博客等级 码龄5年 1粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值