当前课程知识点:Java程序设计 > 第三章 类的重用 > 3.7-小结 > 3.7-小结
到此为止呢
第三章的内容我们就学完了
第三章我们主要介绍的是
类的重用
现在我们简单归纳一下
在这一章我们都学到了
一些什么呢
这一章主要是学习
类的重用的机制
包括两种
一个是类的继承
一个是类的组合
继承表达的是一种隶属关系
从属关系
是一种是一个这样的关系
而组合表达的是一种包含关系
是一种部件组装的思想
两者都实现了类的重用
使我们可以在已有类的基础上
去设计新的类
这样软件开发的效率就会更高
程序的稳定性可靠性也会更好
了解了类的继承机制以后
我们又略微深入的了解了一下
这个object类
object类是JAVA中
所有类的直接或间接的超类
它在整个类继承体系上在最顶端
所以在object类里面呢
规定了JAVA所有类
都必须具有的属性和行为
但是我们从object继承的那些
行为或者是功能
如果直接使用的话
还真的不一定好用
那大家想想为什么不一定好用呢
为什么不在object里边
把最好用的功能
都设计在那儿
我们直接用就行了
干嘛还要覆盖呢
因为object类它这个概念太抽象了
每一个具体的类
对于一项具体的行为
或者功能的实现
肯定都有自己不同的设计
更具体的需求
所以在object类里面
虽然定义了一些
非常有用的公共的行为
但是这些行为的实现
继承到具体的子类中以后呢
可能并不一定好用
这个时候我们就要自己来干什么
覆盖 对吧
我们要写自己的实现的方法体
去覆盖从object类
继承过来的方法
比如说我们要去覆盖
toString()方法
让它能够将对象转换成
一个能表达对象本身信息的
有意义的字符串
而不是说显示一个哈希码
就行了
那还有更多的
比如equals
它名字是个相等
但是它实际是做同一比较
它比不了相等
那这个时候呢
我们也可以根据需要
来把它覆盖一下
去实现我们所希望的
相等比较的功能
我们继承过来的类
如果说我们对某些功能和行为
想改造的话
我们可以去覆盖这些方法
但是也不是什么方法
都能覆盖的
像终结方法就不能覆盖
像静态方法也不能覆盖
还有可能有些类
干脆就不让继承
类也可以设计成终结类
如果说我们在设计整个
类家族的功能的时候
希望对所有的子类
整个这些类家族的所有类
有一个共同的对外服务接口的
这种规范
如果说想规定它们
统一必须有什么样的标准行为
这个时候我们就可以在
最顶层的那个超类中
去规定这些行为的对外接口
这些访问接口
但是往往超类它的信息过于抽象
难以实现一些具体的功能
所以就有些方法呢
在超类中只能声明一个方法原型
无法实现方法体
那这个时候
我们就需要用abstract
去修饰这个方法
把它声明为抽象方法
只有原型没有方法体
那么如果一个类里面有了抽象方法
这个类它就不能产生实例了
这个时候我们需要
同样用abstract这个关键字
去修饰这个类
指明这是一个抽象类
它还不完整
它不能产生实例
它只能做超类用
那么它未实现的部分呢
留在以后它的子类
或者子类的子类
派生到某一级以后
去把这些未实现的方法实现了
那么它的下级子类呢
就不再是抽象类了
就可以产生实例了
好 这就是我们这一章学习的内容
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-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.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集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-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.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件