java培训:什么是抽象类?怎么定义?
什么是抽象类?怎么定义?这是属于java技术里面的一个知识点,本期教程就是围绕这个问题做的相关介绍,当定义一个类时,常常需要定义一些成员方法描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如,在定义Animal类时,shout( )方法用于描述动物的叫声,但是不同动物的叫声是不同的,因此在shout( )方法中无法准确地描述动物的叫声。
针对上面描述的情况,Java提供了抽象方法来满足这种需求。抽象方法是使用abstract关键字修饰的成员方法,抽象方法在定义时不需要实现方法体。抽象方法的定义格式如下:
abstract void方法名称 (参数);
当一个类包含了抽象方法,该类必须是抽象类。抽象类和抽象方法一样,必须使用abstract关键字进行修饰。
抽象类的定义格式如下:
abstract class 抽象类名称{
访问权限返回值类型 方法名称(参数){
return [返回值] ;
访问权限abstract返回值类型抽象方法名称(参数) ;
//抽象方法,无方法体
}
从以上格式可以发现,抽象类的定义比普通类多了一些抽象方法,其他地方与普通类的组成基本上相同。
抽象类的定义规则如下。
(1)包含一个以上抽象方法的类必须是抽象类。
(2)抽象类和抽象方法都要使用abstract关键字声明。
(3)抽象方法只需声明而不需要实现。
(4)如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法。
下面通过一个案例学习抽象类的使用,如文件4-10所示。
在文件4-10中,第2~5行代码是声明了一个抽象类
Animal,并在Animal类中声明了个抽象方法 shout ( );第9~11行代码在子类Dog中实现父类Anima的抽象方法shout( );第17行代码通过子类的实例化对象调用shout( )方法。
注意:
使用abstract关键字修饰的抽象方法不能使用private修饰,因为抽象方法必须被子类实现,如果使用了private声明,则子类无法实现该方法。
java培训:什么是抽象类?怎么定义?相关推荐
- java编程一般类抽象类的定义,Java编程基础抽象类
本文主要是讲述Java编程基础-抽象类,更多Java技术知识,请登陆疯狂软件教育官网. 抽象类: 抽象:不具体,看不明白关键字abstract 抽象类的特点: 1.抽象方法只能定义在抽象类中,抽象类和 ...
- java中抽象类的定义_Java中抽象类的定义和使用
Java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础.指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类是 ...
- [转载] java中抽象类的定义和使用
参考链接: Java中的抽象类 java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础. 指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类 ...
- Java抽象类/抽象方法定义及其特性详解
类的继承结构中,越往上的类越具有通用性,也就越抽象.当它抽象到一定程度,就变成概念成框架,不能再产生实例化的对象了.例如"交通工具",就无法用它来产生一个实例. 对应 ...
- java抽象类的构造函数如何定义_我们可以在Java的抽象类中定义参数化的构造函数吗?...
是的,我们可以在抽象类中定义参数化的构造函数. 在抽象类中定义参数化构造函数的条件我们需要确保扩展抽象类的类具有构造函数,并且可以调用超类参数化构造函数. 我们可以通过使用super()调用在子类中调 ...
- 好程序员Java培训分享20个Java程序员基础题
好程序员Java培训分享20个Java程序员基础题1.谈谈final.finally.finalize的区别 final用于声明属性,方法和类,分别标识属性不可变,方法不可覆盖,类不可继承. fina ...
- java培训后的收获和感想_java培训心得体会(7篇).docx
java培训心得体会(7篇) java培训心得体会(7篇) 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了.开始学习任何一门课(包括jav ...
- java培训教程分享:Java中怎样将数据对象序列化和反序列化?
本期为大家介绍的java培训教程是关于"Java中怎样将数据对象序列化和反序列化?"的内容,相信大家都知道,程序在运行过程中,可能需要将一些数据永久地保存到磁盘上,而数据在Java ...
- java培训教程分享:Java中用户如何自定义异常?
我们在学习java技术的时候应该有了解过,在java中是定义了很多的异常类的,虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在 ...
最新文章
- 新网杯top1方案:手把手构建中文语音合成模型!
- 腾讯阿里谋定联姻农业 智慧农业对话中国农民丰收节交易会
- AI基础:特征工程-类别特征
- VC/MFC 进程间通信方法总结
- activemq网络桥接_ActiveMQ –经纪人网络解释–第5部分
- 异或!!不占用额外空间!!
- jsp通过include指令引入html乱码的解决方法
- 数据库设置_CentOS7 - 设置MySQL数据库
- vba mysql 非法字符串_非法字符串处理.sql
- 转载博客:generic netlink 编程快速入门
- 设计佣金问题的java程序_三角形、nextday、佣金问题实验报告.doc
- 两平面间8参数变换参数求解简单原理解析(已更新间接平差算法)
- 数据指标体系搭建实践
- php怎么检测数据类型,PHP检测数据类型的几种方法总结和技巧
- java服务程序假死(进程存在但请求无响应)的几种原因
- excel箱形图中位数_在Excel中创建简单的箱形图
- 【多线程】多线程的六种状态
- FBEC金陀螺奖·侧记 | 七载相伴,致敬创业路上的每一位勇毅前行者!
- error: #error “Please include Eigen/Geometry instead of including headers inside the src directory d
- java基于SSM的公司办公网站
热门文章
- iOS之使用CoreImage进行人脸识别
- Xposed: 勾住(Hook) Android应用程序对象的方法,实现AOP
- 在Web.config或App.config中的添加自定义配置
- Visual C++ 2012/2013的内存溢出检測工具
- SSH 组建轻量级架构 附录 -- 遇到的问题和解答
- 快过年了,为过完年跳槽的人准备一份面试题
- css:z-index
- cloudemanager安装时出现ProtocolError: ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized问题解决方法(图文详解)...
- 关于PreferenceActivity的使用和一些问题的解决(自己定义Title和取值)
- IBM X3550 RAID 扩容实例