教材学习内容总结

第6章

  • 为了避免重复的行为定义使用继承。
  • 要学会如何正确判断使用继承的时机以及继承之后如何活用多态。
  • 继承的好处之一,就是若你要将name、lexel、blood改为其他名称,那就只要修改Role.java就可以了,只要是继承Role的子类都无法修改。
  • 子类只能继承一个父类,子类与父类之间会有is-a的关系。

    其中判断方法例子如下:
Role role1=new SwordsMan();//SwordsMan是一种Role,编译通过。
SwordsMan swordsMan=role1;//Role不一定是一种SordsMan,编译失败。
  • 正确的多态语法逻辑判断方式:从=号右边往左读,看右边是不是一种左边。
  • 多态:使用单一接口操作多种类型的对象。
  • 如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用撰写{}区块,直接“;”结束即可。
  • Java中规定内含抽象方法的类,一定要在class前标示abstract,表示这是一个定义不完整的抽象类。
  • 被声明为protect的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
  • 如果想取得父类中的方法定义,可以在调用方法前,加上super关键字。
  • 如果class 前使用了final关键字定义,那么表示这个类是最后一个了,不会再有子类,也就是不能被继承。
  • 如果定义类时没有使用extend关键字制定继承任何类,那一定是继承java.lang.Object。

第7章

  • 类要操作接口,必须使用implements关键字。
  • 对于接口多态语法的判断,方式是“右边是不是拥有左边的行为”,或者“右边对象是不是操作了左边接口”。
  • 使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。
  • enum语法,可以用于定义枚举常数。

教材学习中的问题和解决过程

  • 问题:不懂在实际操作中怎样将父类与子类的程序结合起来;解决过程:还未解决,正在询问同学中。

代码调试中的问题和解决过程

package cc.openhome;

class Some {
void doService(){
System.out.println("some service");
}
}
class Other extends Some{
@Override
void doService(){
System.out.println("other service");
}
}
public class Main { public static void main(String[] args) {
Other other = new Other();
other.doService();
} }
package cc.openhome;

class Some {
void doService(){
System.out.println("some service");
}
}
class Other extends Some{
@Override
void doService(){
System.out.println("other service");
}
}
public class Main { public static void main(String[] args) {
Some some = new Other();
some.doService();
} }

为何将main()中改变运行结果是一样的?解决过程:通过回顾本章内容,原来继承时使用extends关键字会使Other扩充Some的行为,继续Some的行为,再扩充Some中的doService()行为。

其他(感悟、思考等,可选)

随着学习章节的增多,渐渐对Java有了越来越全面的理解,这周学习了继承和接口,渐渐的了解了模块代码的结合操作。在敲代码的过程中,虽然还是不能完全理解每段代码的意思以及代码段之间的联系,但慢慢适应吧,多花点功夫总会弄懂的。

代码托管截图:

学习进度条

代码行数 博客量 学习时间 重要成长
目标 5000行 30篇 400小时
第一周 80 1 15 懂得了Java与C语言的区别,自己要花更多的时间来学习Java
第二周 120 1 15 学会了使用IDE并成功运行代码,也发现了Java语法与C语言的相似。
第三周 200 1 16 有了敲代码同时注释的意识并且运用了少许
第四周 300 1 16 渐渐的了解了模块代码的结合操作

最新文章

  1. css3 动画效果 总结 不断完善~~
  2. Install Nvidia driver 367.18 or later
  3. mybatis高级(1)(入门回顾)
  4. WCF序列化
  5. 导入 sun.net.TelnetInputStream; 报错
  6. Mac直播服务器Nginx配置对HLS的支持
  7. POSIX线程--同时执行
  8. 基于@AspectJ和schema的aop(二)---@AspectJ基础语法
  9. POJ 1149 PIGS ★(经典网络流构图)
  10. Maven3在Eclipse上安装插件
  11. Swift 添加到TableView实现动画效果
  12. OFFICE 您正试图运行的函数包含有宏或需要宏语言支持的内容。
  13. Jmeter 录制脚本(二)
  14. MyBatis高级篇之整合ehcache缓存框架
  15. Easyui 页面设置加载完成之后,满屏
  16. Java toString()方法的自动调用
  17. Leetcode题库——12.整数转罗马数字
  18. PID控制算法的C语言实现六 抗积分饱和的PID控制算法C语言实现
  19. 使用Material Design 创建App翻译系列---列表和卡片集的创建
  20. PHP使用header+Location实现网站301重定向

热门文章

  1. 手机远程调试工具spy-debugger
  2. R语言画图布局摆放(layout)
  3. mac svn 终端操作命令
  4. AFHTTPClient的异步回调模式
  5. c# 参数传递
  6. 探索 OpenStack 之(13):研究 Keystone
  7. Oracle 分组聚合二种写法,listagg和wmsys.wm_concat
  8. uva 10976 fractions again(水题)——yhx
  9. A*算法详解 BZOJ 1085骑士精神
  10. Python天猫淘宝评论爬虫