百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

JAVA你可能不知道的事——继承&抽象类

cac55 2024-09-20 12:42 27 浏览 0 评论

一、继承

1.1 概述:当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。 其中,多个类可以称为子类,单独那一个类称为父类。


1.2 定义: 继承就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。


1.3 好处:

1. 提高代码的复用性。

2. 类与类之间产生了关系,是多态的前提。


1.4 格式:

class 父类 {

...

}

class 子类 extends 父类 {

...

}


1.5 继承后的特点——成员变量

1.5.1 如果子类父类中出现不重名的成员变量,这时的访问是没有影响的。

1.5.2 如果子类父类中出现重名的成员变量,在子类中需要访问父类中非私有成员变量时,需要使用super关键字来修饰父类成员变量。使用格式:super.父类成员变量名


1.6 继承后的特点——成员方法

1.6.1 如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

1.6.2 如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override):子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。特点:创建的是子类对象,则优先用子类方法。

1.6.3 注意事项:

1. 必须保证父子类之间方法的名称相同,参数列表也相同。

@Override:写在方法前面,用来检测是不是有效的正确覆盖重写。

这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。


2. 子类方法的返回值必须【小于等于】父类方法的返回值范围。

小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类), java.lang.String就是Object的子类。


3. 子类方法的权限必须【大于等于】父类方法的权限修饰符。

小扩展提示:public > protected > (default) > private

备注:(default)不是关键字default,而是什么都不写,留空。


1.7 继承后的特点——构造方法

1.7.1 子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。

1.7.2 子类构造可以通过super关键字来调用父类重载构造。

1.7.3 super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。

1.7.4 总结:子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。


1.8 覆盖重写的应用场景:子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。


1.9 super关键字的用法有三种:

1. 在子类的成员方法中,访问父类的成员变量。

2. 在子类的成员方法中,访问父类的成员方法。

3. 在子类的构造方法中,访问父类的构造方法。


1.10 this关键字的用法有三种:

1. 在本类的成员方法中,访问本类的成员变量。

2. 在本类的成员方法中,访问本类的另一个成员方法。

3. 在本类的构造方法中,访问本类的另一个构造方法。

在第三种用法当中要注意:

A. this(...)调用也必须是构造方法的第一个语句,唯一一个。

B. super和this两种构造调用,不能同时使用。


1.11 this和super关键字图解:



1.12 继承的特点:

1. Java只支持单继承,不支持多继承。

2. Java支持多层继承(继承体系)。


二、抽象类

2.1 定义:

抽象方法:没有方法体的方法。

抽象类:包含抽象方法的类。


2.2 使用格式:

2.2.1 抽象类定义格式:

abstract class 类名字 {

}


2.2.2 抽象方法定义格式: public abstract 返回值类型 方法名 (参数列表);


2.3 注意事项:

1. 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。

2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。

3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。

相关推荐

Mac电脑强制删除任何软件方法-含自启动应用

对于打工者来说,进入企业上班使用的电脑大概率是会被监控起来,比如各种流行的数据防泄漏DLP,奇安信天擎,甚至360安全卫士,这些安全软件你想卸载是非常困难的,甚至卸载后它自己又安装回来了,并且还在你不...

Linux基础知识 | 文件与目录大全讲解

1.linux文件权限与目录配置1.文件属性Linux一般将文件可存取的身份分为三个类别,分别是owner/group/others,且三种身份各read/write/execute等权限文...

文件保护不妥协:2025 年 10 款顶级加密工具推荐

数据安全无小事,2025年这10款加密工具凭借独特功能脱颖而出,从个人到企业场景全覆盖,第一款为Ping32,其余为国外英文软件。1.Ping32企业级加密核心工具,支持200+文件格...

省心省力 一个软件搞定系统维护_省心安装在哪里能找到

◆系统类似于我们居住的房间,需要经常打理才能保持清洁、高效。虽然它本身也自带一些清理和优化的工具,但借助于好用的第三方工具来执行这方面的任务,会更让人省心省力。下面笔者就为大家介绍一款集多项功能于一身...

JAVA程序员常用的几个工具类_java程序员一般用什么软件写程序

好的工具做起事来常常事半功倍,下面介绍几个开发中常用到的工具类,收藏一下,也许后面真的会用到。字符串处理:org.apache.commons.lang.StringUtilsisBlank(Char...

手工解决Windows10的若干难题_windows10系统卡顿怎么解决

【电脑报在线】很多朋友已经开始使用Win10,估计还只是测试版本的原因,使用过程中难免会出现一些问题,这里介绍解决一些解决难题的技巧。技巧1:让ProjectSpartan“重归正途”从10074...

System32文件夹千万不能删除,看完这篇你就知道为什么了

C:\Windows\System32目录是Windows操作系统的关键部分,重要的系统文件存储在该目录中。网上的一些恶作剧者可能会告诉你删除它,但你不应该尝试去操作,如果你尝试的话,我们会告诉你会发...

Windows.old 文件夹:系统备份的解析与安全删除指南

Windows.old是Windows系统升级(如Win10升Win11)或重装时,系统自动在C盘创建的备份文件夹,其核心作用是保留旧系统的文件、程序与配置,为“回退旧系统”提供保...

遇到疑难杂症?Windows 10回收站问题巧解决

回收站是Windows10的一个重要组件。然而,我们在使用过程中,可能会遇到一些问题。例如,不论回收站里有没有文件,都显示同一个图标,让人无法判别回收站的空和满的真实情况;没有了像Windows7...

卸载软件怎么彻底删掉?简单几个步骤彻底卸载,电脑小白看过来

日常工作学习生活中,我们需要在安装一些软件程序,但随着软件的更新迭代速度,很多时候我们需要重新下载安装新的程序,这时就需要将旧的一些软件程序进行卸载。但是卸载软件虽然很简单,但是很多小伙伴们表示卸载不...

用不上就删!如何完全卸载OneDrive?

作为Windows10自带的云盘,OneDrive为资料的自动备份和同步提供了方便。然而,从隐私或其他方面考虑,有些人不愿意使用OneDrive。但Windows10本身不提供直接卸载OneDri...

【Linux知识】Linux下快速删除大量文件/文件夹方法

在Linux下,如果需要快速删除大量文件或文件夹,可以使用如下方法:使用rm命令删除文件:可以使用rm命令删除文件,例如:rm-rf/path/to/directory/*这个命令会递...

清理系统不用第三方工具_清理系统垃圾用什么软件

清理优化系统一定要借助于优化工具吗?其实,手动优化系统也没有那么神秘,掌握了方法和技巧,系统清理也是一件简单和随心的事。一方面要为每一个可能产生累赘的文件找到清理的方法,另一方面要寻找能够提高工作效率...

系统小技巧:软件卸载不了?这里办法多

在正常情况下,我们都是通过软件程序组中的卸载图标,或利用控制面板中的“程序和功能”模块来卸载软件的。但有时,我们也会发现利用卸载图标无法卸载软件或者卸载图标干脆丢失找不到了,甚至控制面板中卸载软件的功...

麒麟系统无法删除文件夹_麒麟系统删除文件权限不够

删除文件夹方法例:sudorm-rf文件夹名称。删除文件方法例:sudorm-r文件名包括扩展名。如果没有权限,给文件夹加一下权限再删。加最高权限chmod775文件名加可执行权限...

取消回复欢迎 发表评论: