一、解释:

Java的普通类是一个完善的功能类,可以直接实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。

java抽象类是拥有抽象方法的类,要用abstract修饰。

拥有抽象方法的类就是抽象类,抽象类不可以直接实例化对象,无法进行实例化操作:因为抽象类里有抽象方法,但抽象方法又没有方法体,无法调用,无法调用方法便无法实例化对象

抽象类的使用原则如下:

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

(2)抽象类不能直接实例化,需要依靠子类采用向上转型的方式处理;

(3)抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类;

(4)子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。);

(5)抽象类继承子类里面有明确的方法覆写要求,而普通类可以有选择性的来决定是否需要覆写;

(6)抽象类实际上就比普通类多了一些抽象方法而已,其他组成部分和普通类完全一样;

(7)普通类对象可以直接实例化,但抽象类的对象必须经过向上转型之后才可以得到。

虽然一个类的子类可以去继承任意的一个普通类,可是从开发的实际要求来讲,普通类尽量不要去继承另外一个普通类,而是去继承抽象类。

且抽象类中一定含有构造方法,存在的目的就是为了属性的初始化,并且子类对象实例化的时候,依然满足先执行父类构造,再执行子类构造的顺序。

所有的子类如果要想正常的完成操作,必须按照指定的方法进行覆写才可以,而这个时候抽象类所起的功能就是一个类定义模板的功能。

java抽象类变量_Java抽象类相关推荐

  1. java 定义抽象变量_Java抽象类和抽象方法定义与用法实例详解

    本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都 ...

  2. java抽象机制_Java很好学:接口+抽象类+事件监听机制

    接口?抽象类? 首先知道知道下接口.抽象类的概念 接口:只含有常量和抽象方法(只有方法名和参数不含方法体的方法) 抽象类:可以定义常量和抽象方法(和接口一样),还可以定义变量和普通方法和构造方法(和一 ...

  3. java 抽象接口_JAVA中的“抽象接口”

    在程序设计过程中,读者很可能遇到这样一种困境:设计了一个接口,但实现这个接口的子类并不需要实现接口中的全部方法,也就是说,接口中的方法过多,对于某些子类是多余的,我们不得不浪费的写上一个空的实现. 今 ...

  4. Java抽象类方法和抽象类

    抽象类概念和作用 1.抽象类: Java中可以定义没有方法体的方法,该方法由子类来具体实现.该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类. 2.抽象类的特点: (1)定义中含 ...

  5. java抽象方法声明_java抽象类和抽象方法

    一.什么是抽象类和抽象方法 没有具体功能的实现,通过子类继承后重写方法来实现一定约束的类称之为抽象类,抽象类必须被abstract修饰.抽象方法就是只有方法声明,没有方法体的方法.抽象类的使用一般通过 ...

  6. java abstract 继承_java 抽象类abstract的继承与实现

    [类.抽象类.接口.继承和对象(java)------------------------------------------------------------------------------- ...

  7. java 抽象数据类型_java抽象数据类型

    抽象数据类型 抽象数据类型是描述数据结构的一种理论工具.在介绍抽象数据类型之前我们先介绍一 下数据类型的基本概念. 数据类型(data type)是一组性质相同的数据元素的集合以及加在这个集合上的一组 ...

  8. scala java抽象理解_Scala - 抽象类型和隐式参数解析

    我正在使用Scala 2.10.4 . 请详细说明一下 - 实际的代码深深地嵌入了一个复杂的程序中,所以我不会解释这个问题,而是以时间的方式抽象出问题来讨论动物;-) 在scala我有两个特征 - 例 ...

  9. java 计算体积_Java抽象类计算体积

    abstract class Geometr //定义抽象类,几何图形 { public abstract double getArea(); //抽象函数,得到底面积 } class Pillar ...

最新文章

  1. 前端每周清单第 50 期: AngularJS and Long Term Support, Web 安全二三论
  2. linux -bash: ipconfig: command not found 解决方法
  3. python调用手机蓝牙_米家生态出品,易锁宝蓝牙U型锁,让开锁更灵活
  4. python将excel导入mysql_Python将Excel数据自动导入MySQL,python,实现,excel,到,中
  5. 【操作系统】部分概念解释题
  6. 青蛙学Linux—Zabbix Agent的主动模式和被动模式
  7. java访问oracle集群,JAVA查询Oracle数据库集群连接字符串
  8. LAMP 3.2 mysql登陆
  9. hibernate.validator验证参数
  10. python 快速排序的实现
  11. 计算机鼠标键盘没反应,电脑鼠标键盘突然失灵
  12. 【AI视野·今日Robot 机器人论文速览 第二十三期】Tue, 28 Sep 2021
  13. 分布式事务 - 理论模型
  14. IDEA上的GIT PULL的各选项含义
  15. 面向交付的IT软件管理流程
  16. solr的DIH操作同步mysql数据
  17. 自动驾驶在干线物流的商业化进展综述
  18. CyberGhost使用、下载、注册【完整教程】
  19. MySQL数据库,如何批量的将字段的字符集由utf8改为utf8mb4
  20. 【区块链】走进web3的世界-gas费用

热门文章

  1. 黑底白字html代码,如何用chrome扩展将网页变成黑底白字,用以保护视力
  2. 一个好的软件,除了给我们带来效率,更重要的是为我们带来了快乐!
  3. 【自己开发小程序】自己怎么开发一个小程序呢?
  4. 朗伯辐射强度模型MATLAB,基于室内非定向的可见光通信系统的朗伯光源阶数优化...
  5. uni-app开发经验分享二十二: uni-app大转盘思路解析
  6. .NET高级软件工程师的面试题目
  7. python用函数绘制椭圆_如何用Python画一只肥肥的柯基狗狗—turtle库绘制椭圆与弧线实践...
  8. 二叉树专题 -- 持续更新
  9. 最优化方法一:微分求极值
  10. python博客下载本地文件_Linux CentOS6安装Git、Node.js及Hexo静态博客安装和使用方法...