当前课程知识点:Java程序设计 > 第四章 接口与多态 > 4.0-导学 > 导学
大家好
欢迎回来继续学习
JAVA语言程序设计
这一讲我们来学习
接口与多态
首先我将这一章的主要内容
给大家做一个简单的介绍
这一章我们将一起学习
什么是接口 接口的概念
和声明接口
实现接口的语法
还有类型转换
多态的概念以及应用
以及构造方法
与多态性之间的关系
那么什么是接口
接口实际上就是一个纯的抽象类
我们知道抽象类中
可以定义抽象方法
抽象方法就是
只有方法的原型设计
没有方法体实现的这样的方法
那接口中它的所有方法
都只能是抽象方法
不能有方法体的实现
使用接口可以变通一下
来实现多继承
我们知道继承一个类的时候
我们既继承了它的设计
也继承了它的方法体实现
那么实现一个接口
就只继承了它的设计
JAVA不支持类的多继承
那么我们如果希望多继承
怎么办呢
使用接口是一种变通的方法
当然接口中它没有实现
可是能够继承多种设计
也是非常有用的
另外除了我们用接口
来使我们可以继承多种设计以外
用接口还可以按照
类的不同功能分组
去将没有继承
和组合关系的这些类
按照接口去分组
让一些没有继承关系
没有组合关系的类
能够实现统一的对外服务接口
这样的话它们就可以
统一接收某组消息
去相应同样的消息
这个在后面例题中是会看到的
另外使用接口
还可以最大限度的
去隐藏实现的细节
在这一章我们要介绍的
这个类型转换的方面的内容
主要是指引用类型的变量
它的类型转换
我们知道继承一个超类
或者去实现一些接口
它的意义不仅在于实现多继承
而且可以使不同的子类
或者实现接口不同类
它们的这些对象
能够具有统一的对外服务接口
那么在提供统一的
对外服务接口这个意义上来讲
子类的对象总是可以
充当超类对象用的
实现接口的这些类它们的对象
是可以用接口类型的引用
来指向的
也就是说可以通过
接口类型的引用
来访问那些实现接口的
它们的对象
所以在这种意义下
这一章我们要学习类型转换
将子类类型的引用
转换成超类的引用
将实现接口的这些类的
对象的引用
转换成接口类型的引用
那么什么是多态性呢
我们想想
有了超类和子类这种继承关系
有了实现接口这种关系
那么我们又知道
可以将子类对象
用来充当超类对象用
可以用接口类型的引用
去访问实现接口类的对象
那么这样情况下
大家想想是不是我们就可以
像那些子类对象
实现接口的类的对象
统一发送同样的消息呢
因为它们都提供了
在某种意义上
统一的对外服务接口
所以我们可以给这些对象
发送同样的消息
而不同的对象
接收到这些消息以后
怎么去响应这些消息呢
首先它们都能接收
统一格式的消息
然后响应的方式
可以在每个对象所属类里面
去定义自己的特殊响应方式
所以我们看起来
给这些子类的对象
发的是同样的消息
看起来给这些
实现接口的类的对象
发送了同样的消息
但是每个不同类的对象
接收到这个消息以后
它们做出的反应
也就是它们的响应
是可以不同的
这个就是我们这一章
要讲的多态性
这些就是这一章
要介绍的主要内容
除此而外
在这章的最后
还会给大家一个例题
通过例题大家可以看一看
我们能不能在构造函数中
调用多态的方法
如果在构造函数中
调用多态的方法
会不会有什么隐患呢
希望大家接下来
详细学习这一章的内容
-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章小结
-课件
--课件