ZJU-java进阶笔记 第六周(抽象与接口)
- abstract
(1) 抽象类不可以用来制造对象,但可以用来定义变量,当然将来付给这个变量的一定是这个抽象类的非抽象子类的对象
(2) 抽象类的非抽象子类必须覆盖父类中的抽象函数,这种覆盖叫做实现 - 两种抽象
(1) 与具体相对
表达一种概念而非实体
(2) 与细节相对
表达忽略细节而抓大体 - 数据与表现分离,术业有专攻
表现知道数据,数据不知道表现 - 责任驱动的设计:整个程序的功能究竟应该分摊到哪个类上实现
- 一个抽象类可以没有任何抽象方法
若一个抽象类①所有方法都是抽象的(不需要声明)②所有成员变量都是public static final
(static意思是属于整个类而非任何对象,final意思是不会被改变,综合起来即常量)
则为纯抽象类,即接口
例
public interface Cell{void draw(Graphics g,int x,int y,int size);
}
- 不能多继承改成继承+实现
例
public class Fox extends Animal implenments Cell{}
interface (i小写)和Class地位一样,所有可以出现Class的地方都可以用interface取代
类可以实现很多接口(多实现)
接口可以继承接口,但不能继承类
接口不能实现接口面向接口的编程方式
(1) 设计程序时先定义接口,再实现类
(2) 在函数间传入传出的是接口而非具体的类
优点:Java取得成功的关键之一,因极适合多人同时写一个大程序
缺点:代码量膨胀起来很快
ZJU-java进阶笔记 第六周(抽象与接口)相关推荐
- 网易云课堂Java进阶学习笔记系列03 -- 第7周 抽象与接口
第七周 抽象与接口 在第一周就有一个Shape类的例子.这个类有很多的子类,每个子类也都实现了父类的方法.实际上父类Shape只是一个抽象的概念而并没有实际的意义. 举例案例理解 如果请你画一个圆,你 ...
- # 20155337 2016-2017-2 《Java程序设计》第六周学习总结
20155337 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 •串流(Stream): 数据有来源及目的地,衔接两者的是串流对象.如果要将数据从来源取出, ...
- 20155305乔磊2016-2017-2《Java程序设计》第六周学习总结
20155305乔磊2016-2017-2<Java程序设计>第六周学习总结 教材学习内容总结 InputStream与OutputStream 串流设计 1.串流:Java将输入/输出抽 ...
- 20155303 2016-2017-2 《Java程序设计》第六周学习总结
20155303 2016-2017-2 <Java程序设计>第六周学习总结 课堂笔记 高效学习法推荐 看视频学习(2h)→ 以代码为中心看课本,思考运行结果并验证(3h)→ 课后作业验证 ...
- 20165115 2017-2018-2 《Java程序设计》第六周学习总结
20165115 2017-2018-2 <Java程序设计>第六周学习总结 教材学习内容总结 正则表达式的有关内容 Scanner 类的方法调用 数字格式化与日期 Class类.Cons ...
- 20175212童皓桢 《Java程序设计》第六周学习总结
20175212童皓桢 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,包含内部类的类称为 ...
- 20172325 2018-2019-2 《Java程序设计》第六周学习总结
20172325 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 本周学习第十章--树 1.什么是树 (1)树是一种数据结构,与之前学过的栈.队列和列表这些线 ...
- 201521123061 《Java程序设计》第六周学习总结
201521123061 <Java程序设计>第六周学习总结 ***代码阅读:Child压缩包内 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核 ...
- 阿里内部发布最新版Java进阶笔记,金九银十看这份文档就够了
大家都说程序员这个职业薪资高.待遇好,现在是程序员"跳槽"的黄金时期,你准备好了吗?有没有给自己定个小目标?是30K.40K,还是更高?短期内提高Java 核心能力最快.最有效的方 ...
最新文章
- 强迫症慎入:一大票让人看哭的音量键设计即将袭来
- 一种mac使用机械键盘的解决方案
- 文献学习(part32)--Density Peak Clustering Based on Relative Density Optimization
- 【POI】读取Excel表中的数据
- okHttp记录---response.body().string()输出的结构是乱码
- mysql存储ip地址_MySQL怎样存储IP地址
- java 裁剪 pdf_java – 使用iTextPDF修剪页面的空白
- vSphere 故障排除之工具篇
- USB移动硬盘使用中的怪现象
- noip2019集训测试赛(二)
- Utrack声卡和机架包的调试
- Ogre引擎渲染系列之Normal Specular Mapping
- GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!
- Web(ics-07)
- VM中的Ubuntu能ping通外网浏览器不能上网
- 计算器算贝塞尔公式_买车贷款怎么算利息?
- Bubble(13)
- 图像对抗学习笔记:复现DPatch
- push后再git status出现Your branch is ahead of ‘xxx‘ by 1 commit.
- 京东无人超市的成长之路 | 如何利用人工智能技术在零售业做产品创新?
热门文章
- swift -charts框架雷达图
- spring cloud微服务分布式云架构--hystrix的使用
- HTTP 2.0与OkHttp
- leetcode381. Insert Delete GetRandom O(1) - Duplicates allowed
- 绝对实用 NAT + VLAN +ACL管理企业网络
- jfinal框架下使用c3P0连接池连接sql server 2008
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
- SDT(software-defined Things)?软件定义的物件
- 基于Bootstrap里面的Button dropdown打造自定义select
- VMware VSphere 虚拟化云计算学习配置笔记(一)