Java基础知识(三)

JAVA基础学习笔记(五)面向对象 java面向对象 阅读详情

微信公众号:Java患者
专注Java领域技术分享

继承

继承的好处

  • 提高了代码的复用性

  • 提高了代码的维护性

  • 让类与类之间产生了关系,是多态的前提

继承弊端

  • 类的耦合性增强了

  • 开发的原则:高内聚,低耦合

  • 耦合:类与类的关系

  • 内聚:就是自己完成某件事情的能力

继承特点

  • Java只支持单继承

  • Java支持多层继承(继承体系)

  • 如果想用这个体系的所有功能用最底层的类创建对象

  • 如果想看这个体系的共性功能,看最顶层的类

继承注意事项

  • 子类只能继承父类所有非私有的成员(成员方法和成员变量)

  • 子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法

  • 不要为了部分功能而去继承

继承中成员变量的关系

  • this:代表当前对象的引用,谁来调用我,我就代表谁

  • super:代表当前对象父类的引用

  • this和super的使用区别

    • this.成员方法, 调用本类的成员方法, 也可以调用父类的方法

    • super.成员方法 调用父类的成员方法

    • this(...) 调用本类的构造方法

    • super(...) 调用父类的构造方法

    • this.成员变量 调用本类的成员变量,也可以调用父类的成员变量

    • super.成员变量, 调用父类的成员变量

    • 调用成员变量

    • 调用构造方法

    • 调用成员方法

继承中构造方法的关系

  • 子类中所有的构造方法默认都会访问父类中空参数的构造方法

    • 子类的构造方法通过super(...)去显式调用父类的带参构造方法

    • 子类的构造方法通过this()/this(...) 调用本类的其他构造方法,但是子类的其他构造方法中一定会有一个去访问了父类的带参构造方法

    • 让父类提供无参构造

    • 因为子类会继承父类中的数据,可能还会使用父类的数据

    • 所以,子类初始化之前,一定要先完成父类数据的初始化.

    • 其实每个构造方法的第一条语句默认都是super() Object类最顶层的父类

    • 如果父类没有无参构造方法,子类怎么办?

继承中成员方法关系

  • 什么是方法重写

    • 子父类出现了一模一样的方法(注意:返回值类型可以是子父类)

  • 方法重写的应用

    • 当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法.这样,既沿袭了父类的功能,又定义了子类特有的内容.

  • 注意事项

    • 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,静态只能覆盖静态

    • 最好就一致

    • 因为父类私有方法子类根本无法继承

    • 父类中私有方法不能被重写

    • 子类重写父类方法时,访问权限不能更低

    • 父类静态方法,子类也必须通过静态方法进行重写

  • 方法重写面试题

    • Override和Overload的区别? Overload能改变返回值类型吗?

    • override(重写):发生在java的继承中,当子类需要使用和父类方法名相同,但实现过程不同的方法时,就会用到重写。需要注意的是重写的方法的参数列表必须与弗雷的被重写的方法的参数列表完全一直,但返回值类型可以是父类被重写方法返回值类型的衍生类或者是相同类.

    • overload(重载) : 重载发生在同一个类中,同一个类中需要用相同的方法名但实现过程不同的时候用到重载.重载是相同方法名但参数列表不同,即可实现重载.常用的例如类的构造方法的重载.

    • overload能改变返回值类型,只看参数列表

资料 · 福利

回复 【Java】即可获取最新零基础Java视频资料

回复 【激活】即可获取IDEA、datagrip等系统激活方式

回复 【面试题】即可获取Java技术相关面试题

往期 · 精彩

专注分享Java技术,跟我一起学习吧

长按识别二维码关注

<三>java基础知识 一、变量 1、变量的定义 变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)。java中每个变量必须先声明,后使用 该区域的数据可以在同一类型范围内不断变化。 2、变量的分类 1)按数据类型分类:基本类型和引用类型 a、基本类型 数值型[整数类型(byte、short、int、long)]、浮点型(float、double)、字符型(char)、布尔型(boolean) ... 阅读详情

相关推荐

01_MySQL下载、安装与配置(以MySQL8.0.31版本为例)

1.点击下载好的mysql安装包 进入到mysql installer界面。2.选择MySQL Servers选项 一直下拉。

4815

07-04 Java语言基础(继承中构造方法的关系)

继承中构造方法的关系 子类中所有的构造方法默认都会访问父类中空参数的构造方法 class Father { public Father{ System.out.println("Father 的构造方法"); } } class Son extends Father { public Son { super(); //这是一条语句,如果不写,系统会默认加上,用来访问父类中的空参构造 System.out.println("Son 的构造方法"); } } 父类没有无

小鑫的博客 209

IC 时钟设计核心问题与高质量系统设计指南(附源码)

本文深入探讨了IC时钟设计的核心问题与高质量系统设计方法。时钟系统作为IC的"心脏",其性能直接影响时序稳定性、功耗效率和可靠性。文章从五个维度展开分析:时钟源选择与性能匹配、时钟分配网络设计、抖动抑制、多时钟域管理和功耗优化。针对高质量时钟系统设计,提出了时钟源优化、时钟树结构优化、干扰抑制与仿真验证等具体方法。同时,系统阐述了时钟与复位的协同设计关系,强调异步复位同步释放等技术的重要性。文章还总结了高质量IC系统设计的综合要点,包括电源/信号完整性、时序功耗平衡、可靠性设计及全流程验

Open 1059

Java_基础篇_02继承

面向对象(继承的好处和弊端)(掌握) A:继承的好处 a:提高了代码的复用性 b:提高了代码的维护性 c:让类与类之间产生了关系,是多态的前提 B:继承的弊端 类的耦合性增强了。 开发的原则:高内聚,低耦合。 耦合:类与类的关系 内聚:就是自己完成某件事情的能力 面向对象(Java中类的继承特点)(掌握) A:Java中类的继承特点 ...

woailuo23的博客 197

【智能制造】- APS系列|05 APS 排产的五大底层算法逻辑

很多人误以为APS只是给生产工单排先后顺序,实则整套系统依托成熟算法体系,完成多维度约束下的最优生产决策在制造业数字化排产普及的当下,依旧有不少制造管理者对APS存在认知误区,将其等同于简易工单排序工具。事实上,专业级高级计划与排程系统,早已脱离单纯按时间排序的基础功能,而是依托一整套成熟完善的底层算法逻辑,整合现场各类生产限制条件,在海量变量中自动推演、筛选、输出最贴合企业经营目标的生产方案。

qq_40821260的博客 433

无人机巡检提速3倍!YOLOv8n+OpenVINO让Jetson Nano跑25FPS,还能多飞25分钟

摘要(149字): 针对无人机巡检中Jetson Nano算力不足导致的帧率低、首次推理延迟高、续航短等问题,提出YOLOv8n+OpenVINO联合优化方案: 模型轻量化:YOLOv8n参数量仅3.2M(较v8s减少71%),Jetson Nano帧率从8FPS提升至15FPS(原生),绝缘子裂纹召回率仅降3%; OpenVINO加速:AUTO模式动态分配CPU/GPU算力,首次推理延迟从500ms降至200ms,帧率再优化至25FPS; 能效提升:功耗降低40%,单次续航延长25分钟。方案已落地电力/林

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1241

Java基础(chapter104-chapter119)总结

什么是继承 多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 单独的这个类称为父类,基类或者叫超类,多个类可以称为子类或者派生类。 有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。 如何使用继承 示例 public class Person //父类,Person { public String name; public int age; public Person()

hwq317622817的博客 190

IgH EtherCAT 从入门到精通:第 3 章 第一次运行 Hello EtherCAT

摘要:启动EtherCAT主站实践指南 本章详细介绍了如何配置和启动EtherCAT主站系统,主要内容包括: 配置文件详解:讲解/etc/ethercat.conf中的关键配置项,包括主网卡指定、冗余备份设置和网卡驱动选择。 启动流程:说明通过systemd服务和手动命令两种方式加载内核模块,重点介绍了ec_master和ec_generic模块的加载顺序及验证方法。 命令行工具:列举ethercat工具的常用命令,如查看主站状态、扫描从站设备、读取PDO/SDO数据等。 示例程序:简要介绍内核态示例min

从事嵌入式linux android驱动开发,拥有全栈能力 310

JAVA基础之面向对象2

1代码块 1.1代码块概念 代码块是一种常见的代码形式。他用大括号“{}”将多行代码封装在一起,形成一个独立的代码区,这就构成了代码块。 1.1.1代码块分类 局部代码块:局部位置,用于限定变量的生命周期。 构造代码块:是在类中直接定义的,用“{}”括起来的代码。每次调用构造方法前执行,都会先执行构造代码块。 静态代码块:他在类中的成员位置,用“{}”括起来的代码。只不过他用了stat...

weixin_42478671的博客 181

《用 R 探索医药数据科学》目录(持续更新,已超 250 万字)|订阅前说明

我们重磅推出《用 R 探索医药数据科学》专栏!本文作为专栏【订阅后首读】的核心内容,堪称开启学习之旅的 “入门钥匙”,也是整个专栏最关键的一篇指引文。文中不仅完整呈现了专栏 9 大核心篇章 + 问答板块的详细目录,更囊括了订阅后必知的核心要点 —— 从阅读设备、实操工具的使用建议,到学习路径、更新规则的清晰说明,再到问题反馈、感悟记录的实用方法,一站式帮你摸清专栏框架、找准学习方向。建议各位订阅者务必认真阅读、吃透内容,这能让你后续的学习更高效、少走弯!

MD Code 1万+

手把手教你学Simulink——基于Simulink的全双工无线通信仿真建模示例

目录手把手教你学Simulink——基于Simulink的全双工无线通信仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:设计输入信号步骤3:添加调制模块步骤4:添加自干扰消除模块步骤5:添加AWGN信道步骤6:添加接收端处理步骤7:添加解调模块步骤8:计算误码率(BER)步骤9:添加显示模块步骤10:设置仿真参数步骤11:运行仿真并分析结果四、总结 全双工(Full-Duplex)无线通信技术允许在同一频段上同时进行数据的发送和接收,这与传统的半双工(Half-

MHD0815的博客 180

Java基础知识(三)

Java基础知识(三)面向对象 文章目录Java基础知识(三)面向对象什么是面向对象类属性方法普通方法构造方法加修饰词的方法方法的调用对象内存分析 什么是面向对象 ​ 在此之前学习的java编程都是面向过程的编程。面向过程是线性思维;遇到一个问题,面向过程思考方式是,我要一步一步怎么做才能做成这件事。 ​ 而面向对象是分类的思维;遇到一个问题我应该分成几类问题完成它,然后对各个类单独思考,最后在对...

qq_43477218的博客 1019

药物吸收仿真软件:Caco-2_(9).Caco-2模型在药物开发中的案例分析

通过以上五个案例,我们可以看到Caco-2模型在药物开发中的重要作用。它不仅能够帮助我们预测药物的肠道吸收情况,还能够用于优化药物配方、评估代谢稳定性、研究药物相互作用以及转运蛋白的影响。这些体外实验和仿真分析的结果为药物的进一步临床研究提供了重要的参考依据,有助于缩短药物开发周期,提高研发效率。

kkchenjj的博客 863

JAVA基础知识总结(三)

java 面向对象编程

USAcownoodle的博客 2284

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JAVA基础知识(三)

Java基础知识(三) ^: 哭唧唧,本来以为有足够的时间可以写博客,结果没想到大三竟然还有这么多的课,太难了。(本文的大部分知识点都出自于SnailClimb大神,大神的github地址: https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/basis/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md#11-java-%E5%85%A5%E9%97%A8%E5%9F%BA%E7%A1%80%E6%

lichangze1的博客 718

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java基础知识题(三)

本文主要讲解Java的基础知识,包含Maven、Java多线程、JVM管理与Java RMI介绍Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具。maven的核心功能是合理叙述项目间的依赖关系,就是通过pom.xml文件的配置来获取jar包,而不用手动去添加jar包。如果需要使用pom.xml来获取jar包,那么首先项目就必须创建为maven项目。

张小鱼的博客 496

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

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

三:Java基础知识

三:Java基础知识 1.类型转换 自动类型转换 表达式的自动类型转换 强制类型转换 强转快捷键:Alt+回车键 2.运算符 基本算术运算符 取模运算符它的对象可以是浮点数,例:37.2%10=7.2 ‘+’ 做连接符 自增自减运算符 单独一行,a++, 变量位置无所谓; 但如果在表达式里面,a++和++a意思就不一样了; 面试会考: ...

m0_51963375的博客 252

java基础知识三

Object是所有Java类的最终祖先,若没有使用extends关键字显示声明继承某个类,则默认继承Object类。

weixin_62224014的博客 825

Java基础知识三

u013111776的博客 135

Java的基础知识三

一、Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因...

weixin_30673715的博客 83

java基础知识温故(面试常问的基础知识三)

java基础知识温故(面试常问的基础知识三) 大家下午好,继续我们之前面试问题的总结: 1.请说出 Java 14 版本中更新的重要功能 Java 14 发布于 2020 年 3 月 17 日,更新的重要功能有: switch 表达式 instanceof 增强表达式,预览功能 文本块,第二次预览 Records,预览功能 2.请说出 Java 13 版本中更新的重要功能 Java 13 发布于 2019 年 9 月 17 日,更新的重要功能有: 文本块,预览功能 switch 表达式,预览功能 Java

qq_34136709的博客 722

java基础知识漏洞三

String类中使用final关键字修饰字符数组来保存字符串,所以String对象是不可变的(注意这种说法是错误的//...🐛 修正:我们知道被final关键字修饰的类不能被继承,修饰的方法不能被重写,修饰的变量是基本数据类型则值不能改变,修饰的变量是引用类型则不能再指向其他对象。因此,final关键字修饰的数组保存字符串并不是String不可变的根本原因,因为这个数组保存的字符串是可变的(final修饰引用类型变量的情况)。String保存字符串的数组被final修饰且为私有的,并且String。

m0_74229735的博客 988

java intersects_Java的基础知识三

一、Java 集合框架集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的...

weixin_35249119的博客 1454

java基础知识总结三

1.数组:一种引用类型的数据 ,可以存放多个数据,但是数据类型必须统一。数组在内存中一旦被创建,数组长度不可改变 数据类型 [] 数组名称 数据类型 数组名称[](了解即可) 2 定义后的数组一定要进行初始化才能使用 a)动态初始化 int [] array =new int [3] (指定长度) b)静态初始化 int [] array =new int{1...

xx282099721的博客 222

Java 基础知识(三)

原文:zh.annas-archive.org/md5/F34A3E66484E0F50CC62C9133E213205 译者:飞龙 协议:CC BY-NC-SA 4.0 第七章:第七章 Java 集合框架和泛型 学习目标 通过本课程结束时,您将能够: 使用集合处理数据 以不同的方式比较对象 对对象集合进行排序 使用集合构建高效的算法 为每种用例使用最合适的集合 介绍 在之前的课程中,您学习了如何将对象组合在一起形成数组,以帮助您批量处理数据。数组非常有用,但它们具有静态长度的事

龙哥盟 962
上一篇: Java基础知识(二)
下一篇: Java基础知识(四)--多态
新时代Java农民工
博客等级 码龄7年 16粉丝 116原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值