资讯专栏INFORMATION COLUMN

11. java 抽象类

vpants / 3260人阅读

摘要:由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。抽象类不能使用修饰。抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。抽象类的构造方法,类方法用修饰的方法不能声明为抽象方法。

概念

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

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

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

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

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

抽象方法

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

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

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

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

如果一个类包含抽象方法,那么该类必须是抽象类。

任何子类必须重写父类所有的抽象方法,或者声明自身为抽象类。

抽象类总结

抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

抽象类的构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

抽象类的子类必须重写抽象类中的所有抽象方法,除非该子类也是抽象类。

外部抽象类不能使用static修饰,而内部的抽象类允许使用static修饰,使用static修饰的内部类相当于一个外部抽象类,子类继承的时候使用“外部类.内部类”的形式。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73552.html

相关文章

  • Java编程基础11——面向对象_包&权限修饰符&匿名内部

    摘要:外部类要访问内部类的成员,必须创建对象。前提存在一个类或者接口这里的类可以是具体类也可以是抽象类。 1.package关键字的概述及作用(了解) A:为什么要有包 将字节码(.class)进行分类存放 包其实就是文件夹 B:包的概述 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 ... 方案1:按照功能分 com.heima.add ...

    Bryan 评论0 收藏0
  • 【笔记】Java核心技术卷一读书笔记

    摘要:构造器没有返回值一个对象变量并没有实际包含一个对象,而仅仅引用一个对象,如有两个部分。子类重写方法的返回值范围必须小于等于父类方法的返回值。枚举类型中可以添加一些构造器方法和域。 第三章 Java是一种强类型语言。 https://blog.csdn.net/qq_3619... 在Java中,整型的范围与机器无关。 int 4字节 short 2字节 long ...

    weizx 评论0 收藏0
  • Java定时器之Timer学习一

    摘要:类是一个定时任务类,该类实现了接口,而且是一个抽象类说明类是一个抽象类,由安排为一次执行或重复执行的任务。定时器实例有多种构造方法创建一个新计时器。 Timer 的定义 有且仅有一个后台线程对多个业务进行定时定频的调度。Timer 类可以保证多个线程可以共享单个 Timer 对象而无需进行外部同步,所以 Timer 类是线程安全的。 核心的两个类 java.util.Timer 和 ...

    AaronYuan 评论0 收藏0
  • JAVA刷题(持续更新)

    摘要:年期间微软公司发布,无论是技术实现上还是目标用户都与有很多相近之处,给带来了很多讨论比较和竞争对的发展进程影响很大。年月日大会上,公司宣布最终会将开源。及其他与公司争夺的控制权,令从跨平台技术变为绑定在上的技术是微软公司的主要目的。 一、基础 面向对象 面向对象概念 面向对象(Object Oriented,OO)是软件开发方法 对象:万物皆对象,对象可以是具体的事物,也可以是抽象...

    cyixlq 评论0 收藏0
  • 设计模式——工厂模式

    摘要:简单工厂模式创建单一的对象示例描述工厂模式主要是为了创建对象实例或者类簇抽象工厂关心的是最终产出创建的对象而不关心创建的过程在出现多个类的时候每次创建需要找到对应的类往往比较麻烦这时候通常使用一个函数进行封装来创建所需要的对象这样就无需关注 简单工厂模式(创建单一的对象) 示例1 描述 工厂模式主要是为了创建对象实例或者类簇(抽象工厂), 关心的是最终产出(创建)的对象, 而不关心创建...

    Moxmi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<