当前课程知识点:Java程序设计 >  第三章 类的重用 >  3.4-抽象类 >  3.4-抽象类

返回《Java程序设计》慕课在线视频课程列表

3.4-抽象类在线视频

3.4-抽象类

下一节:3.5-泛型

返回《Java程序设计》慕课在线视频列表

3.4-抽象类课程教案、知识点、字幕

大家好

欢迎回来继续学习

JAVA语言程序设计

这一节我们来学习抽象类

抽象类呢往往它代表一个

比较抽象的概念

在抽象类中通常要归并

整个类家族各级子类

都必须具有的属性和方法

声明抽象类的时候呢

类名前面需要加这个修饰符abstract

要加这个abstract这个关键字

在抽象类里边

可以包含什么呢

常规类里面能包含的任何内容

都可以写在抽象类里边

属性 成员这些都可以

当然它也能够包括非抽象方法了

它就跟常规类能包括的东西

是一样的

那么除此而外还可以包含

抽象方法

也就是用abstract修饰的

这样的方法

这样的方法呢它只有方法原型

是没有方法体实现的

抽象类呢是没有具体实例对象的类

也就是说我们不能用new

对这个抽象类进行实例化

我们不能构造抽象类的对象

因为它有未完成的内容

它有未实现的方法

也就是说它只规定了

一些行为的访问接口

那么行为到底如何实现

它还没有规定

那怎么可以产生对象呢

对象的行为不确定怎么可以呢

所以抽象类一般来说

它只能作为超类来用

它自己是不能够产生实例的

只有当子类实现了抽象类中的

所有抽象方法

那么这个子类自己才不是抽象类了

它才能够产生实例

如果子类中仍然有一些抽象方法

没有实现

或者实现不了

那么子类就依然继续是抽象类

它也不能够产生实例

那就寄希望于

它的继续的下去的子类

它的下级子类

什么时候实现了这些抽象方法

那么就可以产生实例了

现在我们来看一下抽象类

它的声明的语法形式

很简单

就是在类的最开头

在class前面加一个abstract

表示这是一个抽象类

那么类体中

就可以包含抽象方法了

像这样声明了这个Number类

是个抽象类以后

如果你要用new

去构造它的实例

那这个时候编译器

在编译的时候就会显示错误

因为抽象类是不能实例化的

抽象方法它归并了一种

行为的访问接口

通常它是放在抽象类中来规定

所有的子类你们必须

都得有这样的行为

但是这个行为的具体实现

是什么呀

具体算法是什么呀

往往因为在抽象类的位置呢

各种信息还不够具体

这个方法它无法实现

所以就可以把它写成抽象方法

用abstract来修饰

我们声明抽象方法的时候呢

要加这么一个abstract关键字

在方法的返回类型之前

加这个abstract

仅仅有这样一个方法原型

没有方法体

那么抽象方法的具体实现呢

要留在子类

在它们各自的类声明中去完成

要注意只有抽象类

可以包含抽象方法

或者反过来讲你要是打算

在一个类中写抽象方法的时候

你就得把这个类给定义成抽象类

抽象方法有什么优点呢

刚才我说了

一方面你可以统一用这种方式

去设计整个类家族的一些

对外的公共服务接口

不仅如此

我们还可以通过抽象方法呢

来隐藏具体的细节信息

这样的话呢

所有子类使用的

都是相同的方法原型

这个方法原型中就包含了

调用这个方法的时候

所需要了解的全部信息

这样就强迫子类

完成指定的行为

规定所有的子类的标准行为

但是这些行为各自如何实现呢

调用者并不需要知道

或者说干脆对调用者就隐藏了

它也不知道有哪些子类实现的

更具体的细节

他只知道我按照这种方法原型来调用

就可以使用这项功能了

这样就比较方便去隐藏细节

现在我们来看一个抽象的绘图类

和抽象方法的例子

在这儿我们声明一个抽象的

图形对象类

Graphic object类

因为它是一种抽象的图形

不知道它是什么图形

显然是没办法确定

如何去绘制这个图形的

但是我们又希望在它的所有子类

在所有的图形类中

都能有一个统一的绘图的接口

于是我们就在这个类中

定义了一个抽象的draw方法

没有方法体实现

接下来在它的子类

比如说原类Rectangle矩形类

在它们里面呢

可以分别去覆盖draw方法

给出自己的特殊实现

在这一节我们学习了

怎么去声明一个抽象类

在抽象类里面怎么样声明抽象方法

以及抽象类和抽象方法

它们存在的意义是什么

好 这一节的内容就是这些

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

3.4-抽象类笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。