20145316许心远《Java程序设计》第4周学习总结
20145316许心远《Java程序设计》第4周学习总结
教材学习内容总结
6.继承与多态
1.继承共同行为
* 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。
* 多个类可以称为子类,单独这个类称为父类或者超类。
* 子类可以直接访问父类中的非私有的属性和行为。
* 通过extends 关键字让类与类之间产生继承关系。
2.多态与is-a
- 子类只能继承一个父类,并且子类与父类之间有一种is-a的关系,让不是一种的类扮演另一种类需要加上类似于 强制类型转换的语法。
- 使用单一接口操作多种类型的对象就是多态,个人的理解就是用一种父类来控制许多的子类。
3.重新定义行为
在继承父类之后,定义与父类中相同的方法部署,但执行内容不同,这称为重新定义(Override)。在重新定义父类中某个方法的时候,子类必须撰写与父类方法中相同的签署,加上 @Override可用来检查该方法是否真的重新定义了父类中的某个方法,防止打错字,否则就会发生错误。
4.抽象方法、抽象类
* 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类
* 抽象方法的由来:多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。
* 抽象类和抽象方法必须用abstract关键字来修饰。
7.接口与多态
1.接口:
可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成
2.接口的定义格式:
接口的数据成员,只允许被public, static, final修饰。
接口的方法成员,只允许被public, abstract修饰。
'''Interface 接口名称{
}'''
接口中的数据成员都为static final类型,必须进行初始化,且接口的数据成员的值不能被修改,允许省略static, final关键字。
接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字
3.接口的实现
接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象
与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。
实现格式:
class 子类名称 implements 接口A, 接口B,….{
//子类成员声明
}
接口的使用必须通过子类,子类必须覆写全部抽象方法。一个子类虽然只能继承于一个父类,但可以同时实现多个接口。
4.接口的继承
接口不能继承一个抽象类,却可以通过extends同时继承于多个接口。
public abstract class base {……}
interface B {……}
interface C{……}
interface A extends base{……} //错误
interface A extends B, C{ ……} //正确
5.接口与继承的区别:
- (1)定义:
以abstract声明,抽象方法可有可无。
以interface声明,由静态常量和抽象方法组成。
- (2)组成:
构造方法、抽象方法、普通方法、常量、变量
静态常量、抽象方法
- (3)使用:
子类继承抽象类(extends)
子类实现接口(implements)
- (4)关系
抽象类可以实现多个接口
接口不能继承抽象类,但允许继承多个接口
- (5)对象
都通过对象的多态性产生实例化对象
- (6)局限
抽象类有单继承的局限
接口可以实现多重继承
- (7)选择
如果抽象类和接口都可以使用的话,优先使用接口,可以避免单继承的局限
6.多态
是指不同类型的对象可以响应相同的消息,从相同的基类派生出来的多个类型可被当作同一种类型对待,可对这些不同的类型进行同样的处理,由于多态性,这些不同派生类对象响应同一方法时的行为是有所差别的
例如:所有的Object类的对象都响应toString()方法。
7.多态性在java中主要有以下两种体现:
- 方法的重载与覆写
- 对象的多态性
教材学习中的问题和解决过程
课后练习题解答:
第六单元:A D D AC DC C B A D
第七单元:A B A B B A D A A A
本周代码托管截图

其他(感悟、思考等,可选)
本周学习内容较为抽象,单纯理解课本稍有困难,所以我看了老师分享的毕向东老师的视频,并进入CSDN等论坛看专业人士的学习心得和经验分享,感觉自己收获了很多东西。java是一门实战类学科,仅仅理解课本理论知识是不够的,还需要多问多想多敲,这个过程需要付出大量的时间和精力,但我会努力的^_^。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/3 | 18/38 | |
| 第三周 | 500/1000 | 3/5 | 22/60 | |
| 第四周 | 300/1300 | 2/6 | 20/80 |
参考资料
- Java学习笔记(第8版)
- 《Java学习笔记(第8版)》学习指导
- [百度百科]
- [CSDN论坛]
- [20145311王亦徐《Java程序设计》第4周学习总结]
- [20145227鄢曼君《Java程序设计》第4周学习总结]
20145316许心远《Java程序设计》第4周学习总结的更多相关文章
- 20145316许心远《Java学习笔记(第8版)》课程总结
20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...
- 20145316许心远《Java学习笔记》第三周总结
20145316许心远<Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: 类定义时使用class关键字 如果要将x绑定到新建的对象上,可以使用"="制定 ...
- 20145316许心远《网络对抗》EXP7网络欺诈技术防范
20145316许心远<网络对抗>EXP7网络欺诈技术防范 实验后回答问题 通常在什么场景下容易受到DNS spoof攻击 公共共享网络里,同一网段可以ping通的网络非常容易被攻击 在日 ...
- 20145316许心远《网络对抗》Exp6信息搜集与漏洞扫描
20145316许心远<网络对抗>Exp6信息搜集与漏洞扫描 实验后回答问题 哪些组织负责DNS.IP的管理? 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.D ...
- 20145316许心远《网络对抗》MSF基础应用
20145316许心远<网络对抗>MSF基础应用 实验后回答问题 用自己的话解释什么是exploit,payload,encode. exploit:顾名思义就是攻击嘛,因为是个动词,所以 ...
- # 20175227 2018-2019-2 《Java程序设计》第一周学习总结
20175227 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 1.安装VB,Ubuntu,Git,JDK,并自行配置. 2.写"Hello Wo ...
- 20172325 2018-2019-2 《Java程序设计》第九周学习总结
20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...
- 20165203《Java程序设计》第九周学习总结
20165203<Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
随机推荐
- ItcastOA_整体说明_准备环境
1. 整体说明 1.1. 项目说明 1.1.1. OA概述 OA是Office Automation的缩写,本意为利用技术的手段提高办公的效率,进而实现办公的自动化处理.实现信息化.无纸化办公,可方便 ...
- Java线程之CompletionService批处理任务
如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果,怎么办呢? 为此你可以保存与每个任务相关联的Future,然后不断地调用 timeout为零的get,来检验Future是否 ...
- java如何发起一次http的post请求?
@RequestMapping(value = "loginInSSO", method = RequestMethod.GET) public String loginInSSO ...
- 170418、vmware 安装 centos 开启网卡自启动
前言:CentOS虚拟机安装成功后,默认开机未启用网关,通过修改配置文件,启用网卡 开启方法如下: 1.登录系统,虚拟机安装完成后,第一次登录系统,系统只有一个账号,即超级管理员root账户,输入安装 ...
- 160408、SpringMVC整合Shiro
第一步:配置web.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!-- 配置Shiro过滤器,先让Shiro过滤系统接收到的请求 --> ...
- Liunx新手入门必看
安装CentOS(Linux的一个常用发行版本,互联网公司经常使用这个发行版)用到的软件: VMware_workstation_full_12.5.2.exe 虚拟机软件,虚拟机由这个软件安装.管理 ...
- bootstrap datetimepicker 日期插件超详细使用方法
日期时间选择器 目前,bootstrap有两种日历.datepicker和datetimepicker,后者是前者的拓展. Bootstrap日期和时间组件: 使用示例: 从左到右依次是十年视图.年视 ...
- 跟着包子学 css (一)
1.在每次 写css之前 都应该先将浏览器的默认 样式 给清除掉 *{padding:0; margin:0;} h1,h2,h3,h4,h5,h6{font-weight:normal; font- ...
- [报错]Unable to simultaneously satisfy constraints
项目中自定义Cell,控件使用autoLayout来设置约束,发现运行页面表现正常,但是控制台报如下错误: Unable to simultaneously satisfy constraints. ...
- 前端开发 - HTML
1.index2.head标签相关内容3.常用标签一4.常用标签二 table5.常用标签二 form6.标签分类 1.index <!--声明文档的类型 标记该文档为HTML5的文件--> ...