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) ... 阅读详情

相关推荐

驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案

财哥在前段时间发布的《驱动钛丝(SMA)的应用(1)汽车腰托支撑按摩气阀模块》一文,引发了很多企业的拜访和交流。 目前很多厂家已经启动或正在进行相关研发,同时也遇到了诸如:钛丝选型、驱动位移、响应设计、温度控制、力量设计、点动滞后、铆接工艺、量化生产等问题。

weixin_39168671的博客 1239

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

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

小鑫的博客 209

统计信号处理基础 习题解答1-1

1-1:在雷达习题中,双程延时时间的估计量具有PDF τ0~Nτ0,στ02,其中τ0是真值。假如要估计距离请提出一种估计量R,并求它的PDF。然后,确定标准偏差στ0,使得距离估计值的99%在真值的100m以内,对电磁波传播速度取c=3×108m/s。 解答: 问题1: 由于电磁波传播速度c,信号可观察的双程传播延时τ0和双程传播距离τ0满足关系: R=cτ02 因此可采用如下估计量: R=cτ02 问题2: 由于τ0满足正态分布,且: Eτ0=τ0 varτ0=στ02 那么: E

weixin_43270276的博客 2805

Java_基础篇_02继承

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

woailuo23的博客 197

手把手教你用树莓派蓝牙抓取小米温湿度计2代数据,接入HomeAssistant(附密钥获取避坑指南)

本文详细介绍了如何通过树莓派蓝牙抓取小米温湿度计2代数据并接入HomeAssistant的完整流程。重点解析了获取32位加密密钥的三种方法,包括使用Telink Flasher工具、米家APP抓包和开源工具ATC_MiThermometer,并提供了HomeAssistant集成配置和常见问题排查指南,帮助用户实现稳定可靠的温湿度监测。

一名菜鸟攻城师 777

人形机器人五大核心零部件技术解析与国产化实况

人形机器人并非简单机械集成,而是物理、能量、感知、决策与执行五层系统毫秒级协同的复杂体。其性能瓶颈往往不在于整机算法,而深植于谐波减速器的刚度稳定性、无框力矩电机的功率密度与温升控制、六维力传感器的动态响应与温漂抑制、运动控制器的实时OS生态及灵巧手的多指协同精度等底层硬件能力。这些部件共同构成整机68.3%的成本,且国产化率差异显著——谐波减速器达72%,而高精度力矩传感器仍受制于日德厂商。本文聚焦‘谐波减速器’和‘六维力传感器’两大热词,从材料工艺、参数定义、失效模式到产线验证,揭示真正卡脖子的技术关卡

weixin_29065959的博客 406

Java基础(chapter104-chapter119)总结

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

hwq317622817的博客 190

从零开始:手把手教你理解UBOOT的BL0、BL1、BL2启动流程

本文详细解析了嵌入式系统中UBOOT启动流程的核心三阶段:BL0、BL1和BL2。BL0作为芯片固化的ROM代码,负责最基础的硬件初始化和加载BL1;BL1(SPL)作为二级程序加载器,在SRAM中运行并初始化DRAM,为加载BL2铺路;BL2则是完整的UBOOT主体,运行于DRAM,负责最终的外设初始化和操作系统引导。文章通过代码示例和流程图,手把手教你理解从芯片上电到系统就绪的完整接力过程。

qsc901234567的博客 1142

JAVA基础之面向对象2

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

weixin_42478671的博客 181

DataEaseV2.9 本地开发环境搭建与调试指南

本文详细指导如何搭建DataEase V2.9的本地开发环境,涵盖从软件准备、源码获取、数据库初始化到在IDEA中配置、编译和调试的全过程。重点解决了本地运行环境的关键配置与常见问题,帮助开发者高效开启DataEase的定制化开发与二次开发。

weixin_29290863的博客 141

STM32F407 CanOpen主机实战:对象字典配置与多电机CIA402协议驱动详解

本文详细介绍了基于STM32F407的CanOpen主机开发实战,重点解析了对象字典的配置流程与多电机CIA402协议驱动方法。通过使用objdictedit工具配置SDO和PDO参数,并整合CanFestival协议栈,实现了对多个伺服电机的稳定同步控制。文章提供了从硬件连接到代码调试的完整指南,帮助开发者快速掌握工业现场的多轴运动控制技术。

plant的博客 527

Java基础知识(三)

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

qq_43477218的博客 1019

【数据集】1970-2023年全球温室气体排放 GHG 数据集 EDGAR

1970-2023年全球温室气体排放 GHG 数据集 EDGAR

WW、forever的博客 1171

JAVA基础知识总结(三)

java 面向对象编程

USAcownoodle的博客 2284

lwip-2.0.3

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

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java基础知识题(三)

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

张小鱼的博客 496

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

余额充值