【Java】《Java程序设计基础教程》第五章学习
5.1 抽象类
Java语言中,父类的某些方法不包括任何逻辑,并且需要由子类重写。在这种情况下,用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。
抽象方法只需声明,无需实现;抽象类不能被实例化,必须通过抽象类的子类来间接实现;抽象类不一定要包含抽象方法,若类中包含了抽象方法,则该类必须被定义为抽象类。
抽象类可以包含非抽象方法。继承抽象类的类必须实现抽象类的抽象方法,否则,也必须定义成抽象类。即使抽象类中无抽象方法,也需要被继承后才能创建其子类的实例。
5.2 接口
接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面:
1.接口的定义
(1). 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系
(2). 通过接口指明多个类需要实现的方法
(3). 通过接口了解对象的交互界面,而无须了解对象所对应的类
在声明接口的成员时不被允许使用一些声明修饰语,比如不能在接口的成员声明中使用transient、volatile 或者 synchronized。同样,不能在声明接口成员的时候使用private和protected修饰语
2.接口的实现
在类的声明中用implements子句来表示一个类实现某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有抽象方法。一个类可以实现多个接口,在implements子句中用逗号分开。
3.接口与抽象类、类的区别
(1). 接口中不能有非抽象类的方法,但抽象类中可以有
(2). 一个类能实现多个接口,但只能有一个父类
(3). 接口也可以继承,与类不同,接口可以继承多个接口
(4). 无关的类也可以实现同一接口
5.3 包
包是一组相关的类和接口的集合。
包不仅使得类的组织和管理更容易,也消除了不同组的类中潜在的类名冲突
【Java】《Java程序设计基础教程》第五章学习的更多相关文章
- 【Java】《Java程序设计基础教程》第一章学习
一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...
- 【Java】《Java程序设计基础教程》第二章学习
一.标识符 Java 中标识符的使用有如下规定:(1)标识符由字母.数字.美元符号”$”和下划线”_”组成,除此之外的任何其他符号是不能作为标识符使用的.(2)标识符中的第一个字符不能为数字. (3 ...
- PHP-----PHP程序设计基础教程----第三章函数
3.1 初识函数 3.1.1 函数的定义 语法: function 函数名([参数1,参数2,......]) { 函数体 } (1)function:在声明函数时必须使用的关键字 (2)函数名:创建 ...
- PHP-----PHP程序设计基础教程----第四章数组
4.1 初识数组 4.1.1 什么是数组 数组是一个可以存储一组或者一系列数值的变量.在PHP中,数组中的元素分两部分,分别为键(Key)和值(Value).其中,“键”为元素的识别名称,也被称为数组 ...
- 20172328 2018-2019《Java软件结构与数据结构》第五周学习总结
20172328 2018-2019<Java软件结构与数据结构>第五周学习总结 概述 Generalization 本周学习了第九章:排序与查找,主要包括线性查找和二分查找算法和几种排序 ...
- 2018-2019-20172329 《Java软件结构与数据结构》第五周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 <Java软件结构与数据结构>第九章-排序与查找 一.查找 1.查找概念简 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第五周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 本周内容主要为书第九章内容: 查找是在某个项目组中寻找到某一指定目标元素,或者确定 ...
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- 2018-2019-20172321 《Java软件结构与数据结构》第五周学习总结
2018-2019-20172321 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 第9章 排序与查找 9.1查找 查找是这样一个过程,即在某个项目组中寻找某一指定目标元 ...
- Objective-C 基础教程第五章,复合
目录 Objective-C 基础教程第五章,复合 什么是复合? Car程序 自定义NSLog() 存取方法get Set Tires(轮胎) 存取方法 Car类代码的其他变化 扩展Car程序 复合还 ...
随机推荐
- mysql创建用户并授权Repl_slave_priv和Repl_client_priv
CREATE USER 'test'@'localhost' IDENTIFIED BY 'test'; FLUSH PRIVILEGES; GRANT REPLICATION CLIENT ON * ...
- python局部变量和全局变量(6)
在python开发中,变量也是有生命周期的,一旦周期结束,程序会自动清理暂用的空间,释放内存,变量分为两者,一种是局部变量,一种是全局变量,两者具体有什么区别呢…… 一.局部变量 一般而言在函数内部或 ...
- 2、Maven的简介和配置
1.下载Maven apche-maven-3.5.2 2. 三.maven简介 1.基于Ant的构建工具,Ant有的功能Maven都有,额外添加了其他的功能 2.运行原理图 2.1本地仓库:计算机 ...
- 解决dubbo注册zookeeper默认内网ip注册
前端时间做新项目的时候遇到一个dubbo的一个问题,在我们项目搭建好后使用了其他同事的支付服务,支付服务架构的方式使用了dubbo服务的方式,使用zookeeper作为注册中心,我们新项目使用dubb ...
- libevent实现对管道的读写操作
读管道: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/t ...
- template模板语言
模板渲染 通过views视图函数对html页面进行渲染 标签{{ 变量 }}/标签 {% 逻辑 %} -- 标签 万能的点 <h1>91李业网</h1> <h2>{ ...
- How to read request body in a asp.net core webapi controller?
原文 How to read request body in a asp.net core webapi controller? A clearer solution, works in ASP.Ne ...
- 数据结构与算法(周测7-拓扑排序和AOV网络)
判断题 1.AOE图的关键路径就是最长的路径 T F 2.AOE图的权值最大的边(活动)一定是关键活动. T F 两条边相加可能比最大的边还要大. 3.在AOE ...
- 使用HBuilderX打包成app之后点击返回按钮让它返回上一个页面
首先:下载引入mui.min.js文件,MUI框架mui-min.js文件github地址 https://github.com/dcloudio/mui 下载之后并在index.html文件中引入如 ...
- Jmeter学习笔记(九)——响应断言
Jmeter中又一个元件叫断言,用于检查测试中得到的响应数据等是否符合预期.断言又13种,目前在使用过程中使用到的是响应断言. 有时候请求成功了并不代表测试通过,还要看影响返回的内容是否符合预期的结果 ...