当前位置: 首页 > news >正文

JAVA 学习笔记——抽象类

 

概念:

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

例如,前面在定义 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.lryc.cn/news/211808.html

相关文章:

  • 磁盘调度算法之先来先服务(FCFS),最短寻找时间优先(SSTF),扫描算法(SCAN,电梯算法),LOOK调度算法
  • postman接口测试—Restful接口开发与测试
  • RK3568-emmc控制器
  • 02-操作符及类型转换与控制流程语句
  • 判断一个字符串中是否包含中文字符
  • 软件测试面试怎样介绍自己的测试项目?会问到什么程度?
  • 莫名其妙el-table不显示问题
  • ElasticSearch复杂数据类型
  • JavaScript_Pig Game保存当前分数
  • 2023/10/30 JAVA学习
  • 测试八股文-Selenium
  • 数据库第8章作业
  • 【OpenCV实现平滑图像金字塔,轮廓:入门】
  • Java JVM垃圾回收确定垃圾的两种方式,GC Root
  • java集合之List接口实现类常用方法详解
  • 三分钟带你了解JS、原型、原型链
  • C# 基于腾讯云人脸核身和百度云证件识别技术相结合的 API 实现
  • LeetCode每日一题——275. H-Index II
  • 项目添加EZOpenSDK之后就开始报错:could not build module foundation等
  • “智能科技·链接未来”2024中国国际人工智能产品展览会·智博会
  • 华为NAT配置实例(含dhcp、ospf配置)
  • 怎样才能把视频号的视频保存到相册,怎么下载视频号视频两个方法轻松解决
  • 软考系统架构师知识点集锦七:计算机系统基础知识
  • k8s节点已有镜像,但Pod一直在拉取镜像时卡着
  • 用图说话——流程图进阶
  • 深入了解 Elasticsearch 8.1 中的 Script 使用
  • 激光雷达点云基础-点云滤波算法与NDT匹配算法
  • 回收废品抢派单小程序开源版开发
  • 粤嵌实训医疗项目--day04(Vue + SpringBoot)
  • redis加入window服务及删除