Java —— abstract关键字

abstract关键字

1.抽象类与抽象方法

  • 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。
  • 有时将一个父类设计得非常抽象,以至于它没有具体的实例,只提供该顶层类的功能(只有顶层抽象方法声明,无方法体,由子类去实现具体功能)这样的类叫做抽象类
  • 类的设计应该保证父类和子类能够共享特征。

2.案例

描述:计算几何图形的面积、周长。“几何图形”是模糊的,不确定的,故声明为抽象类,其功能为计算面积和周长,由于不知道具体是那种图形,故声明为抽象方法,由子类实现具体功能。

abstract class GeometricObject{  //几何图形//面积(声明为抽象方法)//周长(声明为抽象方法)
}class Circle extends GeometricObject{  //圆//面积(需要实现/重写父类中的抽象方法)//周长(需要实现/重写父类中的抽象方法)
}class Rectangle extends GeometricObject{  //矩形//面积(需要实现/重写父类中的抽象方法)//周长(需要实现/重写父类中的抽象方法)
}

3.abstract可以修饰:类、方法

  • abstract修饰类

    • 此类称为抽象类
    • 抽象类不能实例化
    • 抽象类中是包含构造器的,因为子类对象实例化时,需要直接或间接地调用到父类的构造器(加载需要用到的属性、方法)
    • 抽象类中可以没有抽象方法。反之,抽象方法所在的类,一定是抽象类【保证(非静态的)抽象方法不能被调用(因为无方法体),即保证不能有对象(即将类声明为abstract的)】
  • abstract修饰方法

    • 此方法称为抽象方法
    • 抽象方法只有方法的声明,没有方法体
    • 抽象方法其功能是确定的(通过方法的声明即可确定),只是不知道如何具体实现(体现为没有方法体)
    • 子类必须重写父类中所有的抽象方法,否则此子类仍然为抽象类

4.abstract不能使用的场景

  • abstract 不能修饰哪些结构

    • 属性(无意义)
    • 构造器(构造器需要有方法体供子类对象实例化)
    • 代码块(无意义)
  • abstract 不能与哪些关键字共用?(自洽)

    不能使用abstract修饰私有方法、静态方法、final方法、final类

    • 私有方法不能重写
    • 避免静态方法使用类进行调用
    • final方法明确不能被重写
    • final修饰的类不能有子类

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

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

相关文章

了解redis

1.什么是redis? redis是一款高性能的NOSQL系列的非关系型数据库 想了解非关系型数据库概念前往上期(NoSQL Not Only SQL),意即“不仅仅是SQL”-CSDN博客 Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库&#x…

老年生活照护实训室:让养老护理更个性化

本文探讨了老年生活照护实训室在实现养老护理个性化方面的重要作用。通过分析其提供的实践环境、专业培训、模拟案例和评估机制,阐述了如何培养护理人员的个性化服务能力,以满足老年人多样化的需求,提高养老护理的质量和满意度。 在老龄化社会…

CentOS7.X系统部署Zabbix6.0版本(可跟做)

文章目录 一、部署环境说明二、基本环境部署步骤1、环境初始化操作2、部署并配置Nginx3、部署并配置PHP4、测试NginxPHP环境5、部署并配置MariaDB 三、Zabbix-Server部署步骤1、编译安装Zabbix-Server2、导入Zabbix初始化库3、配置Zabbix前端UI4、启动Zabbix-Server5、WEB页面配…

java代码:单链表的实现

1、代码 package LinkList;public class Linklist {//定义节点,内部类只为其外部类使用//要创建嵌套类的对象,并不需要其外围类的对象,直接使用.nextstatic class ListNode{int val;//数据域ListNode next;//指针,指向下一个结点…

前端面试题日常练-day90 【Less】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 在Less中,以下哪种语法适用于定义变量? a) $var b) variable c) #variable d) &variable Less中的Mixin是用来做什么的? a) 定义变量 b) 创建循环 c) 处理函数…

数据建设实践之大数据平台(二)安装zookeeper

安装zookeeper 上传安装包到/opt/software目录并解压 [bigdatanode101 software]$ tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/services/ 重命名文件 [bigdatanode101 services]$ mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7 配置环境变量 export JAVA_H…

GPT-4从0到1搭建一个Agent简介

GPT-4从0到1搭建一个Agent简介 1. 引言 在人工智能领域,Agent是一种能够感知环境并采取行动以实现特定目标的系统。本文将简单介绍如何基于GPT-4搭建一个Agent。 2. Agent的基本原理 Agent的核心是感知-行动循环(Perception-Action Loop)…

C#与倍福Plc通信——使用仿真软件模拟倍福PLC运行

前言 我们在编写上位机与倍福PLC通信的过程中,有时候我们没有真实的Plc,但是我们又想提前测试与倍福PLC的通信,那么这个时候我们就可以使用倍福的仿真软件模拟PLC,然后我们上位机就可以与仿真PLC进行通信了,下面进行详细介绍: 1、下载并安装倍福PLC编程软件TwinCAT 安…

Elasticsearch集群健康检查与监控

在大数据时代,Elasticsearch作为一款高性能、可扩展的搜索与分析引擎,广泛应用于各种需要快速数据检索和分析的场景中。然而,随着数据量的不断增加和集群规模的扩大,保持Elasticsearch集群的健康状态和高效运行变得尤为重要。本文…

python 如何处理图片 举例说明

Python有很多库可以用于处理图片,常用的有Pillow和OpenCV。 举例说明如下: 使用Pillow库读取图片并显示: from PIL import Image# 打开图片 image Image.open(image.jpg)# 显示图片 image.show()使用Pillow库调整图片大小: f…

关于 LayoutInflater.inflate 的取值结论

根节点是否是 mergeViewGroup rootboolean attachToRoot返回值否notNullfalse返回的是 xml 布局的根节点 View 对象,并且对象上拥有根节点上的布局参数。否notNulltrue返回的是添加了根节点View对象以及布局参数的root对象。否nullfalse返回的是没有布局参数信息的根…

Java中的输入输出

输出到控制台 【基本语法】: System.out.println(msg); // 输出一个字符串, 带换行 System.out.print(msg); // 输出一个字符串, 不带换行 System.out.printf(format, msg); // 格式化输出 println 输出的内容自带 \n, print不带 \n printf 的格式化输出方式和…

面试题: C++11用过哪些特性

面试题: C11用过哪些特性 考察重点: 回答问题的层次学习总结的思路 语法糖 关键字: auto, decltypenullptrfinal, overrideconstexpr 语法: 基于范围的for循环 function函数对象,bind, lambda STL容器 array…

Android TabLayout+ViewPager2如何优雅的实现联动详解

一、介绍 Android开发过程中,我们经常会遇到滑动导航栏的做法,之前的做法就是我们通过ViewGroup来转动,然后通过大量的自定义来完成,将导航栏item与viewpage 滑动,达到业务需求 二、现实方案 通过介绍,我…

机器人前沿--PalmE:An Embodied Multimodal Language Model 具身多模态大(语言)模型

首先解释这篇工作名称Palm-E,发表时间为2023.03,其中的Palm是谷歌内部在2022.04开发的大语言模型,功能类似ChatGPT,只是由于各种原因没有那样火起来,E是Embodied的首字母,翻译过来就是具身多模态大语言模型…

36、快手视频解析API接口,免费好用

1、前言 快手视频解析API接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了1个小接口,解析快手链接,获取视频Mp4下载链接,即可下载视频到本地。 查看接口完整信息:https://www.mxnzp.com/doc/de…

Typora中插入LaTex数学公式的使用

文章目录 Typora中插入LaTex数学公式的使用公式的插入上下标括号和分隔符分数开方省略号矢量和均值积分极限累加、累乘及交集、并集希腊字母特殊字符字体大括号和行标字体 大括号和行标其他命令矩阵方程式序列条件表达式配置行高数组与表格嵌套表格或数组方程组连分式交换图表其…

宠物浮毛克星!最值得买的猫用空气净化器排名

作为用了3年宠物空气净化器的铲屎官来说,为什么铲屎官每到春秋换季就开始疯狂打喷嚏、突然开始全身过敏。其原因是猫毛一到换季就开始疯狂掉毛,相对于可见猫毛,漂浮在空气中的浮毛就是罪灰祸首。微小的浮毛在空气总容易被人体吸入体内&#x…

Qt+ESP32+SQLite 智能大棚

环境简介 硬件环境 ESP32、光照传感器、温湿度传感器、继电器、蜂鸣器 基本工作流程 上位机先运行,下位机启动后尝试连接上位机连接成功后定时上报传感器数据到上位机,上位机将信息进行处理展示判断下位机传感器数据,如果超过设置的阈值&a…

NumPy库学习之arange函数

NumPy库学习之arange函数 一、简介 NumPy是一个开源的科学计算库,用于Python语言。它提供了大量的数学函数来对数组进行操作。arange函数是NumPy库中用来生成一个指定范围的值的数组。 二、语法和参数 arange函数的基本语法如下: numpy.arange(star…