java学习笔记——抽象类

news/2024/11/9 2:49:32/

2.1 概述

由来
父类中的方法,被他的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。我们把没有主体的方法称为抽象方法。java语法规定,包含抽象方法的类就是抽象类。

定义
·抽象方法:没有方法体的方法
·抽象类:包含抽象方法的类

2.2 abstract使用格式

抽象方法
使用abstract关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。
定义格式:
修饰符 abstract 返回值类型 方法名(参数列表);

代码举例:

public abstract void run();

抽象类
如果一个类包含抽象方法,那么该类必须是抽象类。
定义格式:

abstract class 类名称{}

代码举例:

public abstract class Animal{public abstract void run();
}

抽象的使用
继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。

public abstract class Animal {public abstract void run();
}
package demo08;import demo07.Animal;public class Cat extends Animal {public void run(){System.out.println("小猫在墙头走~~~");}
}
package demo08;public class CatTest {public static void main(String[] args) {//创建子类对象Cat c=new Cat();//调用run方法c.run();}
}

此时的方法重写,是子类对父类抽象方法的完成实习,我们将这种方法重写的操作,也叫做实现方法。

2.3注意事项

关于抽象类的使用,以下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背。
1、抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。

2、抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。

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

理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设计。

4、抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
理解:假设不重写所有抽象方法,则类中可能包含抽象方法。那么创建对象后,调用抽象的方法,没有意义。


http://www.ppmy.cn/news/34585.html

相关文章

Linux命令运行原理shell和bash

目录前言什么是shell,什么是bash?ls -l 执行过程前言 学习操作系统的过程中我们经常在自己的shell中执行一些Linux命令,那么当我们输入一个类似于 ls -a 这样的命令式,发生了什么? 换句话说,从我们在shell中输入ls -a 按下回车…

基于springboot框架实现校园闲置物品交易 源码+论文

基于springboot框架实现校园闲置物品交易 源码论文开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Ma…

锂电池充电的同时也能放电吗?

大家应该都有这样经历,我们的手机在充电的同时也能边使用,有的同学就会说了,这是因为手机电池在充电的同时也在放电。如果这样想我们可能就把锂电池类比了一个蓄水池,以为它在进水的同时也能出水,其实这个比喻是错误的…

Selenium基础篇之多窗口切换

文章目录前言一、场景二、设计1.访问C站首页2.在toolbar输入框输入selenium3.点击toolbar的搜索按钮4.点击搜索结果页第一个资源三、问题四、分析五、解决六、代码总结前言 大家好,我是空空star,本篇给大家分享一下Selenium多窗口切换。 本篇使用的selen…

Jetbotmini中的PID驱动算法控制与代码实现

PID算法在工业领域应用极为广泛,汽车、飞机、导弹、设备上的温度控制等等都有它的身影,其中的PID三个字母分别是Proportional比例、Integral积分、Derivative微分的首字母,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法。PID控…

C语言自定义数据类型(五)共用体类型

目录 一、什么是共用体类型 二、引用共用体变量的方式 三、共用体类型数据的特点 3.1特点 3.2举例说明 一、什么是共用体类型 有时想用同一段内存单元存放不同类型的变量。例如,把一个短整型变量、一个字符型变量和一个实型变量放在同一个地址开始的内存单元中…

I2C和SPI总线以及通信

通讯属性 概括 Serial/parallel 串行/并行Synchronous/asynchronous 同步/异步Point-to-point / bus 点对点 总线Half-duplex/full-duplex 半双工/全双工Master-slave/ equal partners 主从/对等single-ending / differential 单端/差分 点对点和总线 点对点通讯 只有两个通…

linux简单入门

目录Linux简介Linux目录结构Linux文件命令文件处理命令文件查看命令常用文件查看命令Linux的用户和组介绍Linux权限管理Linux简介 Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦兹&#xff0…