概念

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

在Java中通过abstract关键字定义抽象类,如下:

[访问修饰符] abstract class 类名{....
}

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。抽象类不能使用final修饰。

抽象方法

只包含一个方法名,而没有方法体,同时使用abstract关键字修饰的方法

abstract class 类名{....public abstract 返回值 函数名(参数列表);
}

抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

声明抽象方法会造成以下两个结果:

  • 如果一个类包含抽象方法,那么该类必须是抽象类。
  • 任何子类必须重写父类所有的抽象方法,或者声明自身为抽象类。

抽象类总结

  1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
  2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
  3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
  4. 抽象类的构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
  5. 抽象类的子类必须重写抽象类中的所有抽象方法,除非该子类也是抽象类。
  6. 外部抽象类不能使用static修饰,而内部的抽象类允许使用static修饰,使用static修饰的内部类相当于一个外部抽象类,子类继承的时候使用“外部类.内部类”的形式。

11. java 抽象类相关推荐

  1. java抽象类及其派生类_java抽象类

    本文指标: 1. 最基本的运用:掌握java类最简单,最核心的写法 2. 理论知识:语法角度,设计角度 3. 几种典型应用 最简单也是最核心的抽象类示例: 学习应该是一个循序渐进的过程,学java抽象 ...

  2. Java接口和Java抽象类(转,原文已被删除)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  3. java抽象类的属性_深入理解Java抽象类

    基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍,仍不理解的部分那一定是我讲的不够生动,记得留言提醒我. 好 ...

  4. Java接口和Java抽象类

    Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方,才是它们的最佳位置呢?把它们比较一下,你就可以发现了. 1.Java接口和Java抽象类最大的一个区别,就在于Java ...

  5. osx java 6_OSX 10.11 java 6不兼容怎么办?OSX 10.11 java 6不兼容解决办法

    OSX 10.11 java 6不兼容怎么办?有很多用户在使用最新的OSX 10.11系统时会发现java SE 6不兼容的问题,其实要解决 这个问题比较简单,用户需要下载安装最新的Java SE 8 ...

  6. Java接口和Java抽象类的认识

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  7. java 抽象类 模板_Java抽象类的构造模板模式用法示例

    搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...

  8. IEnumeratorTItem和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了...

    IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...

  9. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

最新文章

  1. Python 笔试面试合集
  2. 存储过程执行不报错,时间太快,但是执行无效
  3. 信息安全意识电子期刊第八期
  4. 通过form表单请求servlet资源代码
  5. python菜鸟教程官网绘图-NumPy Matplotlib
  6. 九度OJ 区间问题 10000个随机正负数生成
  7. 4:springApplication.run 原理
  8. SAP CRM responsibility的维护
  9. 在POJO中使用ThreadLocal的Java嵌套事务
  10. Java第五次作业--面向对象高级特性(抽象类和接口)
  11. 如何在软件发布计划中自动化语义化版本与变更日志
  12. windows 下nodejs 升级无法通过n模块升级
  13. 声谱图,梅尔语谱,倒谱,梅尔倒谱系数
  14. CSS:display和visibility隐藏的区别
  15. vb mysql 实例_VB与数据库的交互经典例子总结
  16. android avrcp处理流程,android 蓝牙avrcp功能的实现.doc
  17. DDNS及端口映射简介
  18. Jsonp解决跨域问题原理
  19. java string 几个字节_java中字符串占几个字节
  20. 元宇宙虚拟人迎来高峰期,哪个是你的最爱?

热门文章

  1. ❤️详解腾讯面试❤️
  2. const应用和作用
  3. 计算机网络:三层ISP结构
  4. shell编程中crontab用法超级详解!
  5. tomcat中的几种log catalina localhost
  6. Linux下查看进程IO工具iopp
  7. 仟叶学校:武汉老师最燃演讲“人生很贵,请别浪费”
  8. Android多媒体扫描过程(Android Media Scanner Prosess)
  9. 远去的高考,消逝的大一……
  10. python目录大纲