JAVA 学习笔记——抽象类

news2024/12/27 10:35:00

 

概念:

当定义一个类时,常常需要定义一些成员方法来描述类的行为特征,但有时这些方法的实现方式是无法确定的。

例如,前面在定义 Animal 类时,walk()方法用于描述动物的行走行为,但是针对不同的动物,其行走行为是不同的,因此在 walk()方法中无法准确描述动物的行走行为。

针对上面描述的情况,Java 提供了抽象方法。

格式:

抽象方法是使用 abstract 关键字修饰的成员方法,其在定义时只给出方法名,不需要实现方法体。抽象方法的定义格式如下:

abstract void 方法名称(参数);

当一个类包含了抽象方法,该类必须是抽象类。抽象类和抽象方法一样,必须使用abstract 关键字进行修饰。抽象类的定义格式如下:

abstract class 抽象类名称 {

  访问权限 返回值类型 方法名称(参数){      //普通方法,有方法体的实现
   return[返回值]; 
   }

   访问权限 abstract 返回值类型 抽象方法名称(参数);//抽象方法,无方法体的实现

}

抽象类规则:

  1. 包含一个以上抽象方法的类必须是抽象类
  2. 抽象类和抽象方法都需要使用abstract 关键字 
  3. 抽象方法只需要声明而不需要实现
  4. 如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法

实例:

  • 创建一个“shape”抽象类,该抽象类包含表示形状的string类型的成员变量namey,和两个抽象方法,分别为求形状周长的抽象方法perimeter0,求形状面积的抽象方法area()
  • 创建两个类,一个为正方形类“Square”,正方形类有一各成员变量:doublelength,一个为圆类Cirde”,圆类有一各成员变量:double radius,要求继承上面的抽象类“shape”,并实现“shape”中的两个抽象方法 
package 类;

abstract class shape {
	String name;
	abstract void perimater();
	abstract void area();


	public static void main (String[]args) {
		Square s = new Square();
		s.length = 1;
		s.perimater();
		s.area();
		Circle x = new Circle();
		x.radius = 1;
		x.perimater();
		x.area();
	}
}

class Square extends shape{
	double length;
	void perimater() {
		System.out.println(""+4*length);
	}
	void area() {
		System.out.println(""+length*length);		
	}
}

class Circle extends shape{
	double radius;

	void perimater() {
		System.out.println(""+3.14*2*radius);
	}

	void area() {
		System.out.println(""+3.14*radius*radius);
	}
	
}

代码分析:

 


 

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

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

相关文章

用友 GRP-U8 存在sql注入漏洞复现

0x01 漏洞介绍 用友 GRP-U8 license_check.jsp 存在sql注入,攻击者可利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。 fofa:app”用友-GRP-U8” 0x02 POC: /u8qx/license_check.jsp?kj…

Leetcode—2562.找出数组的串联值【简单】

2023每日刷题&#xff08;十四&#xff09; Leetcode—2562.找出数组的串联值 实现代码 long long findTheArrayConcVal(int* nums, int numsSize){int left 0;int right numsSize - 1;long long sum 0;while(left < right) {if(left right) {sum nums[left];break;}…

Linux启动之uboot分析

Linux启动之uboot分析 uboot是什么&#xff1f;一、补充存储器概念1.存储器种类1.norflash - 是非易失性存储器&#xff08;也就是掉电保存&#xff09;2.nandflash - 是非易失性存储器&#xff08;也就是掉电保存&#xff09;3.SRAM - 静态随机访问存储器 - Static Random Acc…

Matlab | 基于二次谱提取地震数据的地震子波

本文通过地震数据二次谱求取地震子波谱&#xff0c;具体方法如下&#xff1a; MATLAB代码实现如下&#xff1a; function w SndSpecExtWavelet(x, M) % 功能&#xff1a;基于二次谱提取输入地震数据data的地震子波wavelet % Extracting Wavelet from Input Seismic Dat…

高等数学啃书汇总重难点(八)向量代数与空间解析几何

持续更新&#xff0c;高数下第一章&#xff0c;整体来说比较简单&#xff0c;但是需要牢记公式&#xff0c;切莫掉以轻心~ 一.向量平行的充要条件 二.向量坐标的线性运算 三.向量的几何性质 四.数量积 五.向量积 六.混合积 七.曲面方程 八.空间曲线方程 九.平面的点法式方程 十…

阿里云的OSS云存储的基本使用

阿里云官网&#xff1a;阿里云-计算&#xff0c;为了无法计算的价值 通过阿里云官网&#xff0c;登录进入用户的界面&#xff0c;在搜索框中输入OSS&#xff0c;然后进入阿里云的对象存储OSS的控制台。&#xff08;未开通的开通即可&#xff09; 创建 Bucket 点击【Bucket 列…

sql在线练习

SQLBolt - 学习 SQL - SQL 简介https://sqlbolt.com/拿走不谢&#xff01;&#xff01;&#xff01; UIUC什么乱七八糟的啊

[UDS] --- RoutineCommunicationControl 0x31

1 0x31功能描述 client端使用RoutineControl服务执行定义的步骤序列并获取任何相关结果。该服务具有很大的灵活性&#xff0c;典型的用法包括擦除内存&#xff0c;复位或学习自适应数据&#xff0c;运行自检&#xff0c;覆盖正常服务器控制策略以及控制服务器值随时间变化等功…

jmeter和postman你选哪个做接口测试?

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中&#xff0c;有高手&#xff0c;自然也会有小白&#xff0c;但有一点我们无法否认&#xff0c;就是每一个高手都是从小白开始的&#xff0c;所以今天我们就来谈谈一大部分人在做的接口测试&#xff0c;小白变高手…

LabVIEW背景颜色设为和其他程序或图像中一样

LabVIEW背景颜色设为和其他程序或图像中一样 有时候LabVIEW背景色要和其他程序或者图片的颜色保持一致&#xff0c;如果要求不高可以大致设置一下。如果要求较高&#xff0c;那可以按照如下的方式。 先用PS打开标准图像&#xff0c;之后用吸管工具选择图像上中的点&#xff0…

深度学习(生成式模型)——DDIM:Denoising Diffusion Implicit Models

文章目录 前言为什么DDPM的反向过程与前向过程步数绑定DDIM如何减少DDPM反向过程步数DDIM的优化目标DDIM的训练与测试 前言 上一篇博文介绍了DDIM的前身DDPM。DDPM的反向过程与前向过程步数一一对应&#xff0c;例如前向过程有1000步&#xff0c;那么反向过程也需要有1000步&a…

MySQL(3):基本的 SELECT 语句

SQL 语言 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是使用关系模型的数据库应用语言&#xff0c; 与数据直接打交道 。 SQL 有两个重要的标准&#xff0c;分别是 SQL92 和 SQL99&#xff0c;它们分别代表了 92 年和 99 年颁布的 SQL 标…

7 款用于解锁iPhone密码的苹果解锁软件

无法访问您的 iPhone 一定是最烦人的情况之一。 即使您以前从未遇到过这种情况&#xff0c;做好准备总是一个好主意&#xff0c;而不是在它发生时感到无助。事实上&#xff0c;这种情况经常发生并且可能有很多实例&#xff0c;例如忘记密码或购买锁定的二手 iPhone。 牢记 Ap…

行业追踪,2023-10-30

自动复盘 2023-10-30 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

java毕业设计基于springboot+vue航空公司电子售票系统-机票预订系统

项目介绍 通篇文章的撰写基础是实际的应用需要&#xff0c;然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程&#xff0c;以远程教育系统的实际应用需要出发&#xff0c;架构系统来改善现远程教育系统工作流程繁琐等问题。不仅如此以操作者的角度来…

网络安全中常见的问题和隐患

网络安全是当今数字化世界中的一个重要问题&#xff0c;各种隐患和威胁不断涌现。其中&#xff0c;IP地址与网络安全之间有着密切的联系。本文将讨论网络安全中常见的问题和隐患&#xff0c;以及如何通过查询IP地址来解决一些与之相关的问题。 常见网络安全问题和隐患 1. 黑客…

测开(性能测试---LoadRunner)

目录 一、LoadRunner的安装 二、Loadrunner的基本概念 三、开发测试脚本——VUG 3.1 脚本录制 3.2 脚本加强 四、设计场景——Controller LoadRunner是一款开源桌面应用软件&#xff0c;可用来模拟用户负载完成性能测试工作&#xff0c;LoadRunner的功能在版本不断升级的…

B-5:网络安全事件响应

B-5:网络安全事件响应 任务环境说明: 服务器场景:Server2216(开放链接) 用户名:root密码:123456 1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交; 通过nmap扫描我们发现开启了22端口,…

Camtasia Studio2024中文版下载安装图文教程

Camtasia Studio2024是TechSmith旗下的一套专业屏幕录像软件&#xff0c;同时包含Camtasia 录像器、Camtasia Studio2024&#xff08;编辑器&#xff09;、Camtasia 菜单制作器、Camtasia 剧场、Camtasia 播放器和Screencast的内置功能。在这里我亲测安装了Camtasia2024版本&am…

砷化镓(GaAs)纳米线 砷化镓纳米线 GaAs纳米线 瑞禧

砷化镓&#xff08;GaAs)纳米线 名称&#xff1a;砷化镓(GaAs&#xff09;纳米线 直径&#xff1a;50-400 nm 长度&#xff1a;10-80μm 纳米线是一种新型的材料结构&#xff0c;具有较小的直径和高的长度比&#xff0c;因此在纳米电子学、光电器件等领域有着广泛的应用前景…