轩辕编程(Java第十二讲):Java类的抽象性和最终类

抽象类

        使用关键字abstract声明的类称为抽象类,使用abstract声明的成员方法称为抽象方法。抽象方法只有方法声明没有方法体,例如下面的func1就为抽象方法

        

public abstract class AbstractClassExample {protected int x;private int y;public abstract void func1();public void func2() {System.out.println("func2");}
}

如果一个类中包含抽象方法,那么这个类必须声明为抽象类。

抽象类和普通类最大的区别是,抽象类不能被实例化,只能被继承。

例如:AbstractClassExample ace=new  AbstractClassExample().这就是错误的

由于上述这个类中func1为抽象方法,所以类AbstractClassExample就得定为抽象类,添加abstract关键字

另外需要注意,构造方法、静态成员方法不能被声明为抽象方法

抽象类通常包含抽象方法,也可以不包含抽象方法。但是,包含抽象方法的类必须被声明为抽象类。如果一个类声明继承一个抽象类,它必须实现父类的所有抽象方法,否则该类必须声明为抽象类。

例如:

public class AbstractExtendClassExample extends AbstractClassExample {@Overridepublic void func1() {System.out.println("func1");}
}

抽象类中,声明抽象方法是为子类的共同操作约定的一种方法声明;子类继承抽象类的抽象方法,继承了父类的约定,再根据自身的实际需要给出抽象方法的具体实现。不同的子类可有不同的方法实现。总之,抽象方法不仅使子类具有共同的行为能力,还能实现运行时多态,“一种声明,多种实现”。后续我们还会学习到接口,对于接口来说,接口内所有方法都需重写

最终类

使用关键字final声明的类称为最终类,最终类不能被继承,即不能有子类。

例如:public final class Math extendsObject//数学类,最终类

public class MyMath extends Math//语法错,最终类不能被继承

public final class Circle extends Ellipse//圆类,最终类,不能被继承

注意:抽象类不能被声明为最终类

使用final声明的成员方法称为最终方法。最终方法不能被子类覆盖。最终类中包含的都是最终方法。非最终类也可以包含最终方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Transformer 】 Hugging Face手册 (02/10)

一、说明 启动🤗并运行变形金刚!无论您是开发人员还是日常用户,此快速教程都将帮助您入门,并向您展示如何使用 pipeline() 进行推理、使用 AutoClass 加载预训练模型和预处理器,以及使用 PyTorc…

VRRP负载平衡

1.构图 2.实验 2.1如图提示配置pc1-pc4 掩码:255.255.255.0网关均设置为192.168.1(\2).254 2.2配置sw1-sw2 [sw1]port-group 1 //创建接口组,组号是1[sw1-port-group 1]group-member gigabitethernet 0/0/1 to gigabitethernet 0/0/3 //添加组成员,从…

springboot142新冠病毒密接者跟踪系统

新冠病毒密接者跟踪系统设计与实现 摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲&#xff…

有源滤波装置在电能质量生物制药行业中的应用

上海安科瑞电气股份有限公司 胡冠楠 咨询家:“Acrelhgn”,了解更多产品资讯 摘要:随着电子设备大量的使用,非线性负荷越来越多,企业电力网的谐波污染问题也越来越严重,由于谐波的不良作用恶化电能质量&…

【鸿蒙】大模型对话应用(三):跨Ability跳转页面

Demo介绍 本demo对接阿里云和百度的大模型API,实现一个简单的对话应用。 DecEco Studio版本:DevEco Studio 3.1.1 Release HarmonyOS SDK版本:API9 关键点:ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 页面跳…

C#用正则表达式判断字符串是否纯数字vs用Char.IsDigit 方法遍历字符数组是否纯数字

目录 一、使用的方法 1.正则表达式 2.Char.IsDigit 方法 二、源码 1.源代码 2.生成效果 一、使用的方法 1.正则表达式 在程序运行过程中,经常需要用户输入数字信息,如输入员工年龄、工资等。使用正则表达式Regex类的IsMatch方法,可以有…

产业热点 | 从 Vision Pro 发售,洞见空间计算时代新机遇

*图源:Apple 官网 近日首批 Vision Pro 启动预约发售,短短一周就预估售出 20 万台,如今正式发售在即,再度受到各界的热切关注。 *图源:Apple 官网 同样作为空间计算赛道企业,ALVA Systems 在过去十余年始…

2024年美赛数学建模A题思路模型代码

​2024年美赛ABCDEF题思路模型代码论文:开赛后2.2早上第一时间更新,详细内容见文末名片 目录 下面是我对美赛的一些看法,大家可以参考 赛题思路代码模型论文:开赛后第一时间更新,获取见文末名片 总说(历年美…

ubuntu20配置mysql8

首先更新软件包索引运行 sudo apt update命令。然后运行 sudo apt install mysql-server安装MySQL服务器。 安装完成后,MySQL服务将作为systemd服务自动启动。你可以运行 sudo systemctl status mysql命令验证MySQL服务器是否正在运行。 连接MySQL 当MySQL安装…

【免费分享】数据可视化-银行动态实时大屏监管系统,含源码

一、动态效果展示 1. 动态实时更新数据效果图 ​ 2. 鼠标右键切换主题 二、确定需求方案 1. 屏幕分辨率 这个案例的分辨率是16:9,最常用的的宽屏比。 根据电脑分辨率屏幕自适应显示,F11全屏查看; 2. 部署方式 B/S方式:支持…

SpringBoot+Redis如何实现用户输入错误密码后限制登录(含源码)

点击下载《SpringBootRedis如何实现用户输入错误密码后限制登录(含源码)》 1. 引言 在当今的网络环境中,保障用户账户的安全性是非常重要的。为了防止暴力破解和恶意攻击,我们需要在用户尝试登录失败一定次数后限制其登录。这不…

全程云OA未授权访问+SQL注入漏洞复现 [附POC]

文章目录 全程云OA未授权访问+SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现全程云OA未授权访问+SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利…

【开发实践】python使用 moviepy实现mp4转gif(含可视化界面)

一、分析介绍 MoviePy是一个用于视频编辑和处理的Python库。它提供了一种简单而直观的方式来创建、编辑和合成视频,同时也支持添加音频和图像。 以下是MoviePy的一些主要功能和用法示例: 创建视频剪辑: from moviepy.editor import VideoFi…

visual studio 0x800700d8怎么解决

遇到Visual Studio中的0x800700d8错误通常表示在尝试执行某个操作时遇到了问题,这可能是由于系统组件缺失、文件损坏、权限问题或其他系统级错误导致的。下面是一些详细的解决步骤,你可以尝试按照这些步骤来解决问题: 运行Windows更新&#…

如何做好多平台内容营销?媒介盒子分享

随着社交媒体不断多元化,内容营销逐渐发展出了新趋势,那就是跨平台内容营销。互联网平台相对封闭,平台的运营偏好也会吸引不同社区的粉丝聚集,造就其不同的品牌人格,然后用户个体需求极其复杂,兴趣也在不断…

Arcgis10.3安装

所需软件地址 链接:https://pan.baidu.com/s/1aAykUDjkaXjdwFjDvAR83Q?pwdbs2i 提取码:bs2i 1、安装License Manager 点击License Manager.exe,默认下一步。 安装完,点击License Server Administrator,停止服务。…

大数据学习之Redis,十大数据类型的具体应用(四)

3.8 Redis基数统计(HyperLogLog) 需求 统计某个网站的UV、统计某个文章的UV 什么是UV unique Visitor ,独立访客,一般理解为客户端IP 大规模的防止作弊,需要去重复统计独立访客 比如IP同样就认为是同一个客户 需要去…

滑动窗口入门(算法村第十六关青铜挑战)

窗口:窗口其实就是两个变量left和ight之间的元素,也可以理解为一个区间。窗口大小可能固定,也可能变化。滑动:窗口是移动的,事实上移动的仍然是left和ight两个变量,而不是序列中的元素。当变量移动的时&…

OpenGL着色器对象 Shader Objects

着色器对象 要创建着色器对象,你可以使用以下命令: uint glCreateShader( enum type );当创建着色器对象时,它最初是空的。type 参数指定要创建的着色器对象的类型,必须是指示相应着色器阶段的值之一。以下是该命令的简要概述&a…

算法笔记刷题日记——Day1 C_C++在ACM中的常用语法

写在前面 这学期选了ACM课,但平时缺乏练习,不怎么刷题,因此期末考试成绩并不理想。考虑到之后的考研复试中包含机试,且计试可以算是非常重要的印象分,因此我打算寒假刷一下算法笔记,备战3月初的PAT甲级和3…