JAVA抽象类——abstract
1. 抽象方法
如果父类中一定含有某个方法,但如何实现并不能确定,这就应该是一个抽象方法。
如父类是图形,方法是计算图形的面积,因为每一种图形都有不同的面积计算公式,所以如何计算图形的面积不能确定,那么,这就是一个抽象方法。
2. 抽象方法和抽象类的定义
和C语言的虚类、虚函数作用相同。
抽象类:抽象方法所在的类,一定是抽象类。在class之前加abstract关键字
抽象方法:即加上abstract关键字,去掉大括号,不写内容,直接分号结束。(接口中也可以写抽象方法)
定义格式:
public abstract class 类名{成员变量1;成员变量2;...public abstract 返回值类型 方法名(参数列表);//抽象方法...public 返回值类型 方法名(参数列表){}//其他普通成员方法
}
3. 抽象方法和抽象类的使用
- 抽象类不能直接new对象,必须有子类继承抽象类。
- 子类必须覆盖重写父类所有的抽象方法(即去掉abstract关键字,加入方法体)。
- 然后创建子类对象使用
4. 注意事项
- 抽象类不能创建对象
- 抽象类可以有构造函数,但只是供子类构造方法调用进行父类成员变量初始化的。
- 抽象类不一定保护抽象方法。有抽象方法的一定是抽象类
- 抽象类的子类,必须覆盖重写抽象类的所有抽象方法。(快捷键:把光标放到子类类名报错的红线上,按 ALT+回车)
- 抽象类也可以多级继承。只要有一个抽象方法没有覆盖重写,就必须是抽象类,必须接着往下派生子类。只要所有的抽象方法都覆盖重写了,才不是抽象类,可以创建对象。
JAVA抽象类——abstract相关推荐
- java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)
1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...
- Java抽象类(Abstract Class)与接口(Interface)区别
抽象类与接口比较 抽象类跟接口类似,都不能实例化,可能包含不需实现方法或已实现的方法. 抽象类可以定义一些不是静态或常量的字段,定义 public, protected, private访问级别的具体 ...
- 晋南讲堂之Java抽象类(abstract)与接口(interface)区分
抽象类(abstract)和接口(interface)的对比 1. 抽象类(abstract) 我们一般声明一个抽象类按照如下形式: abstract class ClassName{//成员变量 ...
- java抽象类_Java抽象类
java抽象类 Abstract class in Java is similar to interface except that it can contain default method imp ...
- Java接口和Java抽象类(转,原文已被删除)
1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...
- Java抽象类(abstract)、final关键字
抽象类 (abstract) 抽象类的特点: 抽象类为继承而生 抽象方法不能有代码体 子类要想继承父类 就必须要重写父类的全部抽象方法 Father.java public abstract clas ...
- Java中抽象类 abstract和interface的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和inte ...
- java 抽象类 模板_Java学习day21-抽象类(abstract class)和模板设计模式(TemplateMethod)...
一.抽象类(abstract class) 1.随着继承层次中一个个新子类的定义,类变的越来越具体,而父类则更一般.更通用.类的设计应该保证父类和子类能够共享特征.有时需要将一个父类设计的非常抽象,以 ...
- Java 面向对象 之 抽象类 abstract
转载于 : http://www.verejava.com/?id=16992804621647 /**知识点: 抽象类 abstract题目: 爸爸叫我买一斤水果和一条鱼思路:1. 抽象出类:爸爸( ...
最新文章
- Qt中的QBoxLayout
- PPT怎么在剪映_剪映怎么剪辑音乐?添加、分割、导入音乐,图文详解!
- 【工业控制】What is a Waveform
- shell关闭指定进程
- Linux进阶之路——常用命令总结
- itest英语考试bug_itest(爱测试) 4.2.1 发布,开源BUG 跟踪管理 敏捷测试管理软件...
- 将TIMESTAMP类型的差值转化为秒的方法
- CSS Position(定位)
- 绘图的尺寸_Auto CAD机械绘图尺寸标注教程10(标注多重引线)
- 央行等四部门发布资管新规全文
- 转:管理欲望:领导者的自我觉察与突破
- 关于printf的输出——进制转换
- 给本地openwrt/LEDE软件源添加软件包,更新Package.sig签名文件,解决Signature check failed问题
- KubeCon 上海 SOFAStack Cloud Native Workshop 报名中
- 【抖音小程序】抖音小程序避免onClose重复回调 解决广告重复回调
- Java打印菱形与空心菱形
- 2D,2.5D,3D封装结构
- 《有毒的逻辑:为何有说服力的话反而不可信》PDF扫描版电子书下载
- SSM志愿者服务平台 计算机专业毕业设计源码22859
- docker运行mysql性能_使用docker运行mysql
热门文章
- C/C++编程:单一定义规则ODR(不理解)
- “吃啥补啥”未必靠谱!安发生物甘诺宝力送你正确“养肝攻略”
- xbox one 越狱_如何使用密码限制对Xbox One的访问
- postgresql 分词_使用Postgresql进行中文分词
- ArcGIS图层打开却不显示内容 解决方法之一
- 2021-05-26 2021年T电梯修理最新解析及T电梯修
- java trimleft_js如何实现java中的trim() ----------去掉两边空格
- js点击按钮,自动复制到粘贴板
- NC | 中科院先进院戴磊组开发SEER-FISH成像技术解析微生物组空间结构
- 第五节 利用Ogre 2.3实现雨,雪,爆炸,飞机喷气尾焰等粒子效果