Java基础之继承

二维卡尔曼滤波位置,速度融合 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma... 阅读详情

1.访问权限

 

修饰符本类同一个包的类继承类其他类
private√×××
default√√××
protected√√√×
public√√√√

如果子类的方法重写了父类的方法,那么子类中该方法的访问级别不允许低于父类的访问级别。这是为了确保可以使用父类实例的地方都可以使用子类实例去代替,也就是确保满足里氏替换原则。

设计良好的模块之间通过它们的 API 进行通信,一个模块不需要知道其他模块的内部工作情况,这个概念被称为信息隐藏或封装。因此访问权限应当尽可能地使每个类或者成员不被外界访问。


2.抽象类和接口

(1)抽象类:abstract 关键字进行声明。如果一个类中包含抽象方法,那么这个类必须声明为抽象类。

【只能被继承、不能实例化】

(2)接口:interface

接口的成员(字段 + 方法)默认都是 public 的,并且不允许定义为 private 或者 protected。

接口的字段默认都是 static 和 final 的。

(3)比较

  • 抽象类提供了一种 IS-A 关系,需要满足里式替换原则,即子类对象必须能够替换掉所有父类对象。
    接口更像是一种 LIKE-A 关系,它只是提供一种方法实现契约,并不要求接口和实现接口的类具有 IS-A 关系。
  • 一个类可以实现多个接口,但是不能继承多个抽象类。
  • 接口的字段只能是 static 和 final 类型的,而抽象类的字段没有这种限制。
  • 接口的成员只能是 public 的,而抽象类的成员可以有多种访问权限

(4)使用

使用接口:

  • 需要让不相关的类都实现一个方法,例如不相关的类都可以实现 Compareable 接口中的 compareTo() 方法;
  • 需要使用多重继承。

使用抽象类:

  • 需要在几个相关的类中共享代码。
  • 需要能控制继承来的成员的访问权限,而不是都为 public。
  • 需要继承非静态和非常量字段。

在很多情况下,接口优先于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。

 

3.super

  • 访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。应该注意到,子类一定会调用父类的构造函数来完成初始化工作,一般是调用父类的默认构造函数,如果子类需要调用父类其它构造函数,那么就可以使用 super() 函数。
  • 访问父类的成员:如果子类重写了父类的某个方法,可以通过使用 super 关键字来引用父类的方法实现。

4.重写与重载

(1)重写(Override):

存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。

为了满足里式替换原则,重写有以下三个限制:

  • 子类方法的访问权限必须大于等于父类方法;
  • 子类方法的返回类型必须是父类方法返回类型或为其子类型。
  • 子类方法抛出的异常类型必须是父类抛出异常类型或为其子类型。

(2) 重载

指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。

应该注意的是,返回值不同,其它都相同不算是重载。

 

 

【JTAG】1149.6协议详解 JTAG1149.6协议是1149.1协议中Boundary-Scan结构的扩展,1149.1对交流耦合、差分或两者兼有的情况并没有得到充分的处理。该协议支持新的I/O测试结构。需要时变(AC)信号的高级I/O引脚允许测试它们之间的连接,这包括所有差分信号引脚或单端信号引脚,通过设计支持交流耦合。.................. 阅读详情

相关推荐

周立功CAN盒二次开发实录:用QT5.1.0解析汽车CAN报文(附数据可视化技巧)

本文详细介绍了基于QT5.1.0和周立功USBCAN-E-U设备进行汽车CAN总线二次开发的实战过程。核心内容包括利用CANdb++数据库解析原始报文并转换为物理值,以及通过QCustomPlot库实现高性能实时数据可视化,为车载诊断与车联网开发提供了一套完整的工程实践方案。

sugar的博客 1058

c++常用知识点5

1.函数重写 overload重载 override重写 函数重写只发生在父子类之间 在派生类中定义与基类函数原型相同(返回类型、函数名、参数列表)的函数 2.赋值兼容性原则 在基类与公有派生类之间也存在赋值兼容原则 is-a 关系

sinat_39061823的博客 286

Avalonia 项目结构说明

Avalonia UI

bjxingch的博客 1271

深入解析为什么Spring boot的Configuration注解的子类方法可以覆盖父类bean实现

前言 今天想给spring security框架服务之间校验权限的功能加一个免服务内部校验,找到了全局方法权限配置的配置类GlobalMethodSecurityConfiguration。看到了类和方法上的两句话 一个开启全局方法的配置,子类可以通过继承他来自定义默认值,但是必须要在子类上定义EnableGlobalMethodSecurity注解 子类可以override这个方法来提供一个不同的方法拦截器 最后实现效果是,定义一个类,只要继承这个类,这个类不用定义成Configuration,也

大胡子_biu 2021

从Mate到Mate40 Pro+:华为旗舰核心配置演进与选购避坑指南

本文回顾了华为Mate系列从初代到Mate40 Pro+的核心配置演进历程,重点分析了处理器性能、影像系统、屏幕设计及续航快充的技术突破。针对选购需求,提供了区分版本、5G选择及存储配置的实用避坑建议,帮助消费者明智选择华为旗舰机型。

weixin_30015371的博客 494

开源CC6920差分霍尔电流传感器模块实战指南——从选型到波形分析

本文详细介绍了CC6920差分霍尔电流传感器模块的选型、硬件连接、参数计算及波形分析技巧。通过实战案例,展示了该开源硬件在电流测量中的优势,包括超低内阻、电气隔离和抗干扰能力,适用于电机控制、开关电源保护等场景。

weixin_28738397的博客 376

继承bean并重写方法逻辑以替换原有实现

继承bean并重写方法逻辑以替换原有实现

嘻上槑梢的博客 1076

Python 爬虫实战:抓取悦动圈跑步爱好者运动轨迹数据,规划健身路线

通过本次 Python 爬虫实战,我们学习了如何使用 Python 抓取悦动圈跑步爱好者的运动轨迹数据,并基于这些数据进行分析和处理,最终规划出健身路线。在这个过程中,我们掌握了requests、BeautifulSoup、pandas和matplotlib等库的基本使用方法,了解了爬虫的基本原理和流程。希望本文能够帮助你更好地理解和应用 Python 爬虫技术,在数据处理和分析领域取得更多的成果。

u014481728的博客 2363

spring 子类覆盖父类中注入的bean

我们在设计程序框架的时候,会设计一个抽象基类,子类继承这个基类,共有的方法放到基类中去,使用spring后使代码变的很简单,现在遇到的问题是在基类中注入bean后,子类不可能都会是有这个bean,那么需要考虑到子类需要覆盖或者说重新注入个性化的bean 有三种方法来实现这个效果,以下是一种方法,如下面代码: 抽象基类: public abstract class AbstractNameSe

只喝白开水 1万+

英飞凌Tricore实战系列导读

笔者结合项目应用经验对Tricore MCU的开发及应用经验进一步总结,成人达己,渡己渡人。

initiallizer的博客 3790

【YOLOv12多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1211

子类对象代替父类对象作为函数入口参数(以及对类私有成员变量继承的理解)

1.子类对象代替父类对象作为函数入口参数 从一个简单的例子中就可以清楚的看出: #include <iostream> using namespace std; class father { public: virtual void show() { cout<<"father value\n"; } }; class child : public fa...

qq_34489443的博客 2444

【UVM实战】第七章:UVM中的寄存器模型(1)寄存器模型简介

寄存器模型简介~

悟已往之不谏 知来者之可追 2070

Java基础_继承

Java基础_继承

weixin_64977805的博客 191

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java基础之封装、继承、多态笔记

Java基础之封装、继承、多态笔记

weixin_43345286的博客 378

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java继承终极指南:从基础到高级应用

继承是面向对象编程的四大特性之一(封装、继承、多态、抽象),它允许一个类(子类)基于另一个类(父类)来构建,继承父类的属性和方法,同时可以添加新的特性或修改继承的行为。专业解释:继承是一种"is-a"关系,通过extends关键字实现类之间的层次结构,子类获得父类的非私有成员(属性和方法),并可进行扩展或覆盖。通俗理解:就像儿子继承父亲的某些特征(如眼睛颜色),但也可以有自己的独特特征(如发型)。在编程中,继承让我们可以复用已有代码,减少重复劳动。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 966

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java基础(八):封装、继承、多态性

从类的定义来看,类是一类具有相同特性的事物的抽象描述。而实例变量和实例方法就是事物的特征,那么父类中声明的实例变量和实例方法代表子类事物也有这个特征。如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有空参的构造器,则。所以继承意味着子类的对象除了看子类的类模板还要看父类的类模板。问题:在创建子类对象的过程中,一定会调用父类中的构造器吗?一个引用类型变量可能指向(引用)多种不同类型的对象。特别说明:应该避免子类声明和父类重名的成员变量。问题:创建子类的对象时,内存中到底有几个对象?

从基础到源码解析的学习记录 2983

java基础之类继承

本文是我将网上有关类继承方面的笔试题加以消化整理,希望通过此种方式来巩固自己的基础知识,同时也希望这些笔试题对其它朋友有所帮助,文中内容如若涉及到他人的版权或是隐私请通知我,我会在第一时间对文章内容进行处理操作,最后也希望看到此文的朋友对文中的内容给予批评指正,风尘在此先行谢过!Ok,现在进入正题: /////////////////////////////////类继承初始化方法调用相关笔试题

moudaen的专栏 1683

java基础之继承[20]

java基础之继承[20]

FlymaAqi,芜湖,飞马阿起,passion!passion! 121

关于Java继承方面的基础知识汇总

kjslkdasjldkaslkdj

astudycat的博客 343

Java基础之浅谈继承、多态

Python微信订餐小程序课程视频 https://edu.youkuaiyun.com/course/detail/36074 Python实战量化交易理财系统 https://edu.youkuaiyun.com/course/detail/35475 一、继承的理解 继承:简单通俗的来讲,继承就是一个类继承另一个类,通常用extends表示继承。 继承的类叫子类,被继承的类叫父类。 子类可以使用父类的变量和方法,同时也可以重写父类的方法。 在Java中没有多继承这一概念,但是有类似多继承的方法!(通常来讲一个父类可以有多个

「 虚幻私塾」 209

java基础(5)继承与多态

哈喽大家好啊,今天继续来为大家分享java基础语法的学习,今天分享的是java中的继承与多态,也是Java基础学习当中非常重要的一部分,话不多说让我们开始吧。

2301_81073317的博客 2094

Java基础复习(继承、多态)

 Java基础复习,记录自己的学习过程,同时也为初学者或者是一些不经常写Java的朋友们回忆起java基本语法

Y3036359510的博客 1460

Java基础——继承&抽象

Java基础——继承&抽象

qq_43798150的博客 535

Java基础 - 类的继承

面向对象是Java语言的核心,在Java中所有的类都继承于 java.lang.Object。当一个类没有显式使用继承的两个关键字(extends, implements),则默认继承 Object类。面向对象是现代软件设计模式的基础。合理利用它,不仅可以增强代码的可扩展性和复用性,同时也提高开发效率和降低维护成本。关于面向对象的详细介绍,请参考我的另一篇文章“面向对象编程详解”。这篇文章主要介绍Java的面向对象编程特性。

weixin_38008415的博客 1064

超详细JAVA基础——继承

学会JAVA继承,只看这一篇文章就够了!

qq_45781655的博客 3万+
上一篇: Java基础之Object通用方法
下一篇: Java基础之反射、异常、泛型、注解
trytrylmt
博客等级 码龄9年 7粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值