抽象类: abstract
抽象:不具体,看不明白。抽象类表象体现。
在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法。
抽象方法所在类一定要标示为抽象类,也就是说该类需要被abstract关键字所修饰。

抽象类的特点:
1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量)。
2:抽象方法只定义方法声明,并不定义方法实现。
3:抽象类不可以被创建对象(实例化)。
4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。

抽象类的细节:
1:抽象类中是否有构造函数?有,用于给子类对象进行初始化。
2:抽象类中是否可以定义非抽象方法?
可以。其实,抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体。所以抽象类和一般类在定义上,都是需要定义属性和行为的。只不过,比一般类多了一个抽象函数。而且比一般类少了一个创建对象的部分。
3:抽象关键字abstract和哪些不可以共存?final , private , static 
4:抽象类中可不可以不定义抽象方法?可以。抽象方法目的仅仅为了不让该类创建对象。
-----------------------------------------------------------------------------------------------
模板方法设计模式:
解决的问题:当功能内部一部分实现时确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。

abstract class GetTime{
public final void getTime(){ //此功能如果不需要复写,可加final限定
long start = System.currentTimeMillis();
code(); //不确定的功能部分,提取出来,通过抽象方法实现
long end = System.currentTimeMillis();
System.out.println("毫秒是:"+(end-start));
}
public abstract void code(); //抽象不确定的功能,让子类复写实现
}
class SubDemo extends GetTime{
public void code(){ //子类复写功能方法
for(int y=0; y<1000; y++){
System.out.println("y");
}
}

转载于:https://www.cnblogs.com/Null556/p/6800147.html

java难点解析(七)-抽象类相关推荐

  1. Java 的抽象特性:抽象类与接口深度解析

    要点: 抽象类 接口 抽象类与接口的差别 一. 抽象 对于面向对象编程来说,抽象是它的四大特征之中的一个. 在Java中,能够通过两种形式来体现OOP的抽象:接口和抽象类. 接口和抽象类为我们提供了一 ...

  2. POI技术—用于java开发解析excel的抽象类

    1.单元格各类型数据读取 1.1 基本类型 处理的Excel数据包括字符型数据,数字.日期.公式等. 下面是单元格类型说明: 2实例 解析excel中数据,要求转换为文本方式存储 2.1 写一个exc ...

  3. Java泛型解析(02):通配符限定

    Java泛型解析(02):通配符限定      考虑一个这种场景.计算数组中的最大元素. [code01] public class ArrayUtil {public static <T> ...

  4. Kotlin难点解析:extension和this指针

    扩展(extension)是Kotlin语言中使用非常简单的一个特性.这篇文章并不是要讲解扩展的基本用法,而是解决在一些复杂场景中,扩展容易让人产生迷惑的一些问题.除了扩展,本篇文章还将讲解this指 ...

  5. was这么做的负载均衡_中间件(WAS、WMQ)运维 9个常见难点解析

    原标题:中间件(WAS.WMQ)运维 9个常见难点解析 本文由社区中间件达人wangxuefeng266.ayy216226分享整理,包括WAS.WMQ在安装.巡检.监控.优化过程中的常见难点. 安装 ...

  6. Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)

    该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...

  7. 操作系统难点解析之进程和线程

    为什么80%的码农都做不了架构师?>>>    操作系统难点解析之进程和线程 关于操作系统,其中最为核心的概念就是进程和线程(轻量级进程).在进程和线程的基础之上,进而衍生出了并发和 ...

  8. Java校招笔试题-Java基础部分(七)

    导语   Java 面试题集2021版 Java基础部分七 73.Set 和List的区别? 74.集合框架中Collection 和Arrays 类的作用 75.TreeSet 里面放对象,如果同时 ...

  9. Java学习第七天 ———— 第一周学习汇总(粗略)

    Java学习第七天 ---- 第一周学习汇总 第一章Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大 ...

最新文章

  1. 德州寒流对IDC带来极大影响
  2. TCP/IP 总结一
  3. 腾讯技术研究类和数据分析第一次笔试(2021.8.22)——Python
  4. java 操作cursor数据库_Java连接各种数据库以及调用存储过程
  5. C++/OpenCV:将数据保存到xml、yaml / 从xml、yaml读取数据
  6. 面向对象的基本概念(二)--UML.类之间的关系
  7. datasnap资料
  8. yy神曲url解析php_用PHP如何实现解析抖音无水印视频
  9. configure: error: udev support requested but libudev header not installed
  10. WORD里的背景水印为什么怎么也删除不了呢?
  11. infoq mysql索引_MySQL 索引优化指南
  12. 织梦采集侠自动采集伪原创发布设置
  13. 【软考中级】多媒体基础知识整理(个人整理)
  14. visual basic是不是计算机语言,辉煌不再!Microsoft计划结束Visual Basic编程语言
  15. 计算机实数表示法---浮点数(一)
  16. Matlab如何平移图形(Figure)中的曲线
  17. win10系统下,屏幕录制专家如何录制耳机里面的声音
  18. 交换机——级联、堆叠和集群
  19. 6.26 mongoDB是无法find未初始的值的,mongoose的Schema需具象化及个人商品Schema设计,租赁网登录态初次尝试,vue对对象未赋初值的监听,forEach等api深拷贝问题
  20. 系统设计 - 短链接系统 short url

热门文章

  1. request对象方法详解
  2. 解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”(转贴)...
  3. 将VS2005中的.CS文件在网页中显示的方法
  4. 请教,一个解决方案中包含多个相互引用的项目,该如何配置?
  5. python websocket例程_python 实现websocket
  6. 服务器与ssl证书有关吗,选择网站SSL证书和服务器位置有没有关系和影响
  7. swoole必须和PHP使用吗,php有必要使用swoole吗
  8. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结
  9. 可变车道怎么走不违章_可变车道怎么才能正确通行?老司机来告诉你什么才是正确的走法。...
  10. 推荐两款快速查找/替换电脑中文件的软件