Java基础之继承

VMware Workstation 17 Pro 保姆级教程:手把手教你安装银河麒麟 Kylin V10 SP3 国产系统 本文提供VMware Workstation 17 Pro安装银河麒麟Kylin V10 SP3的详细教程,涵盖环境准备、虚拟机配置、系统安装及优化全流程。通过分步指导和实用技巧,帮助用户高效搭建国产操作系统开发测试环境,特别适合技术自主可控需求场景下的虚拟化实践。 阅读详情

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) 重载

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

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

 

 

遥感生态指数(RSEI)——四个指数的计算 遥感生态指数是在4个生态指数的基础上通过主成分变换得出的一个评价生态环境质量的指标。因此,第二部分就是要分别计算出这4个指数的值。 ①首先,是绿度指数的计算,一般用归一化植被指数(NDVI) NDVI=(NIR-Red)/(NIR+Red) 在Bandmath工具中输入NDVI计算公式 (float(b4-b3))/(b4+b3) 其中,b3、b4分别是红波段和近红外波段 ②其次,是湿度计算。 WET = c1B1 + c2B2 + c3B3... 阅读详情

相关推荐

ESP32S3编译micropython固件

编译ESP32芯片的micropython固件

m0_73253860的博客 2553

c++常用知识点5

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

sinat_39061823的博客 286

AM243x多核MCU启动流程解析与OSPI Flash烧录实战

嵌入式系统开发中,引导加载器是芯片上电后执行的第一段软件,负责初始化硬件、加载操作系统或应用程序。其工作原理通常遵循多级引导链,从ROM固件到用户可定制的二级引导程序,逐级建立完整的软件运行环境。这一机制的技术价值在于实现可靠的系统启动、支持安全校验,并为多核异构架构提供协同基础。在应用场景上,引导加载器广泛应用于工业控制、汽车电子和物联网设备,确保设备能从非易失性存储器中自主启动。本文聚焦于TI AM243x这类高性能多核MCU,深入剖析其包含RBL和SBL在内的三级启动流程,并详细演示如何通过UART接

weixin_28703451的博客 582

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

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

大胡子_biu 2021

AD服务器搭建

一、角色安装1)打开服务器管理器,添加 角色和功能;2) 点 下一步;3)点 下一步;4)点 下一步;5)点击安装;6-1)将此服务器提升为域控制器;6-2)点下一步;6)输入密码 点 下一步;7)自动生成LIXF,点击下一步;8)确认目录,点下一步;8)确认安装条件,点安装; 8)安装成功,点关闭;...

潇峰的博客 6446

【汽车故障诊断2】从标准到实战:解码DTC格式背后的诊断逻辑

本文深入解析汽车诊断故障码(DTC)的格式与逻辑,对比了OBD-II标准(如ISO 15031-6)的5字符格式与UDS协议(ISO 14229-1)下更丰富的3字节格式。文章从国际标准出发,结合实战案例,阐述了DTC如何作为汽车电子系统的“体检报告”,帮助工程师和维修技师精准定位故障,并详细解读了UDS 19服务如何读取和管理DTC状态。

berry的博客 711

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

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

嘻上槑梢的博客 1076

DP链路训练从HPD触发到通道对齐:原理与调试实战

高速数字接口的稳定工作依赖物理层信号的精确协商,链路训练正是DisplayPort接口中确保源端与接收端在速率、摆幅和时序上达成一致的关键机制。HPD作为链路状态变化的触发信号,与通道对齐一同构成了训练流程的首尾环节。理解从时钟恢复到均衡再到多通道对齐的完整过程,有助于快速定位显示异常问题。在工程实践中,借助DPCD寄存器交互和AUX通道日志,可以系统性地排查训练失败原因。围绕链路训练全流程进行剖析,重点探讨HPD触发机制、训练图案选择、寄存器配置以及链路降级策略,为显示方案开发与调试提供工程参考。

weixin_30110543的博客 234

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

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

只喝白开水 1万+

Flotherm XT学习历程

大家好,通过半年的热仿真软件学习使用,最终发现最好用,最好上手的软件就是Flotherm XT,对新手非常友好,但由于软件近几年才发布,网上教程非常少,后面我将在这里持续分析软件使用心得,和大家一起学习。

xiaoredred的博客 6259

LeRobot 入门教程(七)数据集

LeRobot Dataset v3.0 是机器人学习数据的标准化格式,支持多模态时间序列数据和视频的统一访问。该版本通过基于文件的存储(Parquet/MP4)、关联元数据和Hub原生流式处理等新特性,显著提升了性能并降低了存储开销。文档详细介绍了格式设计、安装使用、数据记录与加载方法,以及从v2.1迁移到v3.0的步骤,特别针对大型数据集(如DROID 1.0.1)的处理提供了SLURM集群移植方案。v3.0通过优化文件组织和元数据管理,实现了更快的加载速度、更高的内存效率和更好的可扩展性。

2506_90492529的博客 2054

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

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

qq_34489443的博客 2444

Autosar_MCAL_Port

PORT Driver就是对微控制器(MCU)的整个PORT模块进行初始化配置。很多端口和管脚被分配有多种不同的功能,即可以进行引脚功能复用,比如通用I/O、adc、pwm、spi等功能。因此,对PORT必须有一个整体的配置和初始化,对各管脚的具体配置和使用取决于微控制器和ECU的引脚功能分配。PORT初始化数据应当尽可能高效地写到每个端口。DIO驱动中所用到的端口的配置和初始化都是在PORT驱动模块中完成的。因此,在使用DIO功能之前,应先进行PORT的初始化。1、PortContainer说明。

不断debug,优化中…… 239

Java基础_继承

Java基础_继承

weixin_64977805的博客 191

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

lwip-2.0.3

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

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

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

weixin_43345286的博客 378

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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、付费专栏及课程。

余额充值