# 2019-2020-3 《Java 程序设计》第五周学习总结
2019-2020-3 《Java 程序设计》第五周知识总结
1.使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。
注意:
与Java的类文件一样,接口文件的文件名必须与接口名相同。
2.实现接口
接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下:
[修饰符] class [extends 父类名] [implements 接口列表]{
}
修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。
类名:必选参数,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。
implements 接口列表:可选参数,用于指定该类实现的是哪些接口。当使用implements关键字时,接口列表为必选参数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。
在类中实现接口时,方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。
3.在类的继承中,只能做单重继承,而实现接口时,一次则可以实现多个接口,每个接口间使用逗号“,”分隔。这时就可能出现常量或方法名冲突的情况,解决该问题时,如果常量冲突,则需要明确指定常量的接口,这可以通过“接口名.常量”实现。如果出现方法冲突时,则只要实现一个方法就可以了。
4.接口可以直接作为参数使用,接口与abstract类的用法不尽相同,要学会面向接口编程。
2019-2020-3 《Java 程序设计》第五周学习总结
1.通过第五周的学习,利用教材和老师在蓝墨云上的一些教学视频以及通过老师和同学的博客以及一些课外资料,充分学习了第六章的内容,学习的内容有:接口、实现接口、接口的UML图、接口回调、理解接口、接口与多态、接口参数、abstract类与接口的比较、面向接口编程。通过这周的学习,主要学习了接口,认识了abstract类与接口的区别,学会了面向接口编程,发现使用接口可以更方便快捷的编写程序。
2.通过手打六章代码,对语法有一定的帮助,并在调试完代码后上传至码云仓库,并提交脚本。
3.代码运行截图:
例子1:
例子2:
例子3:
例子4:
例子5:
例子6:
脚本截图:
注:我的码云链接:https://gitee.com/zzm-zcc/zhang_zhi_min。
2019-2020-3 《Java 程序设计》第五周练习题生疏题、错题总结
1、下列关于实现接口的说法,正确的是(ABC)
A .一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。
B .如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。
C .类重写接口方法时,方法的访问权限一定要明显地用public修饰。
D .子类既可以重写接口中的方法,也可以直接拥有接口中的方法。
2、如果有以下程序片段:
interface Some{
void dosome ();
}
class SomeImpl implements Some {
void dosome(){
System.out.println("做一些事");
}
}
public class Main {
public static void main (String [] args) {
Some s= new SomeImpl();
s.dosome ();
}
}
以下描述正确的是(A)
A .编译失败
B .显示“做一些事”
C .发生ClassCastException
D .执行时不显示任何信息
3、下列关于接口的说法,正确的是(BCD)
A .接口体中包含常量、变量和抽象方法三部分。
B .使用关键字interface来定义一个接口。
C .接口体中所有抽象方法的访问权限一定都是public。
D .接口体中只有抽象的方法,没有普通方法。
4、下列说法错误的是(C)
A .public接口可以被任何一个类实现。
B .友好接口可以被与该接口在同一包中的类实现。
C .可以通过关键字implements声明一个接口是另一个接口的子接口。
D .子接口将继承父接口中的全部方法和常量。
5、下列四个接口中,错误的是(AB)
interface Takecare {
protected void speakHello(); //A
public abstract static void cry(); //B
int f(); //C
abstract float g(); //D
}
A .A
B .B
C .C
D .D
# 2019-2020-3 《Java 程序设计》第五周学习总结的更多相关文章
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- Java程序设计第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 20175209 《Java程序设计》第九周学习总结
20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
随机推荐
- select函数总结
阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回.使用Select就可以完成非阻塞non-block,就是进程或线程执 ...
- mybatis的动态sql编写以及一对一关系查询和一对多的查询
创建mybatis数据库,运行以下sql语句 /* SQLyog Ultimate v8.32 MySQL - 5.5.27 : Database - mybatis **************** ...
- bootstrap的日期选择器
时间框偏移解决办法 首先导入js和css文件 <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js" ...
- 学习excel的使用技巧二批量复制
1 选中要操作的部分 2 CTRL+G 打开定位 3 点击 定位条件 4 选择空值 5 输入=号 然后键盘的 方向键 向上 6 按住CTRL+回车 即可实现 批量复制
- 学习C++,应该循序渐进的看哪些书?
在某博客上看到的一个C++书籍阅读清单,可以参考下: 阶段 1<Essential C++>这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程.本书主要围绕一系列逐渐复 ...
- 30_react_router基本使用
项目结构: import React from 'react' import {render} from 'react-dom' import {BrowserRouter} from 'react- ...
- CentOS6.5搭建OpenVas完全搭建手册(搭建过程总结及小记)
一.OpenVAS 介绍 1.关于OpenVAS OpenVAS(Open Vulnerability Assessment System)是一套开源的漏洞扫描系统,早期Nessus 是其中一个最流行 ...
- 高性能迷你React框架anujs1.0.8发布
本版本由于得到业务线同学的大力支持,掀出许多问题,因此改进地方良多,为anujs在完美替换React的道路上前进了不少.现在anujs经测试可以运行于IE7中.至少怎么做可以参看官网,https:// ...
- eclipse git(版本回退)
https://www.cnblogs.com/duex/p/6389999.html
- $nextTick 的作用
文档:深入响应式原理 Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新. $nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据 ...