20165305 苏振龙《Java程序设计》第四周学习总结
第五章
继承:
面向对象中,为避免多个类间重复定义共同行为。(简单说就是将相同的程序代码提升为父类。)
特点:
这里接触到了新的关键词,extends,在java语言中用estends来继承父类的行为。
is-a原则,在java中子类只能继承一个父类。要开始理解多态,必须先知道操作的对象是“哪一种”。
多态,使用单一接口操作多种类型的对象。
在继承父类之后,定义与父类中相同的方法部署,但执行内容不同,称为重新定义。
如果某方法区块真的没有任何程序代码操作,可以直接使用abstract标识该方法为抽象方法,该方法不用撰写{}区块,直接“;”结束即可。
注意:
关键字extends是为了扩充和继承父类的行为。
在java中一个子类只能继承一个父类。
在判断操作对象是“哪一种”的时候,检查语法的逻辑是否正确,方式是从=右边往左边读:右边是不是一种左边呢(右边类是不是左边类的子类)?
在重新定义中,子类必须撰写与父类方法相同的签署,如果因为疏忽打错字就会完全不同(虽然编译会成功,但是行为会完全不同),但在JDK5后标注@Override,表示要求编译程序检查是否真的重新定义父类中某个方法。
子类如果继承抽象类,对于抽象方法有两种做法,一种是继续标注该方法为abstract(必须在class前标注abstract),另一种就是操作抽象方法,如果都没有实施,则会出现编译错误。
继承与法细节:
特点:
protected成员权限关键字,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。(不开放访问权限,但可以直接存取
如果想要取得父类中的方法定义,可以调用方法前,加上super关键字。
在class前使用了final关键字定义,那么表示这个类是最后一个,不会再有子类,也就相当于不能再被继承。在定义方法时候也可以限定为final,表示最后一次定义方法了,也就是子类不可以重新定义final方法。
在java继承中一定继承了java.lang.Object,简单来说任何类追溯至最上层类中一定是Object父类。
注意:
JAVA中有3个权限关键字,public、protected与private,但实际上有4个权限范围。
若原来成员public,子类中重新定义时不可谓private或protected。
在JDk5之前,重新定义方法时除了可以定义权限较大的关键字之外,其他部分必须与父类中方法签署完全一致。
在创建ArrayList实例时候,可以指定内部数组初始容量,如果使用无参数构造函数,则默认容量为16。
垃圾收集:在执行流程中,无法通过变量参考的对象,就是GC(Garbage Collection) 认定的垃圾对象。
抽象类:虽然是抽象方法,但在go()方法中,还是可以调用。
第六章
接口:
可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成。
接口的定义格式:
接口的方法成员,只允许被public, abstract修饰。 '''Interface 接口名称{ }''' 接口中的数据成员都为static final类型,必须进行初始化,且接口的数据成员的值不能被修改,允许省略static, final关键字。
接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字
接口的实现
接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象 与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。 实现格式: class 子类名称 implements 接口A, 接口B,….{ //子类成员声明 } 接口的使用必须通过子类,子类必须覆写全部抽象方法。一个子类虽然只能继承于一个父类,但可以同时实现多个接口。
接口的继承
接口不能继承一个抽象类,却可以通过extends同时继承于多个接口。
接口与继承的区别:
定义: 以abstract声明,抽象方法可有可无。
以interface声明,由静态常量和抽象方法组成。
组成:构造方法、抽象方法、普通方法、常量、变量、静态常量、抽象方法
使用:子类继承抽象类(extends)、子类实现接口(implements)
关系
抽象类可以实现多个接口
接口不能继承抽象类,但允许继承多个接口
对象都通过对象的多态性产生实例化对象
局限抽象类有单继承的局限但是接口可以实现多重继承
选择 如果抽象类和接口都可以使用的话,优先使用接口,可以避免单继承的局限
多态
是指不同类型的对象可以响应相同的消息,从相同的基类派生出来的多个类型可被当作同一种类型对待,可对这些不同的类型进行同样的处理,由于多态性,这些不同派生类对象响应同一方法时的行为是有所差别的 例如:所有的Object类的对象都响应toString()方法。
多态性在java中主要有以下两种体现:
方法的重载与覆写 对象的多态性
代码托管(ch5,ch6)
脚本截图

20165305 苏振龙《Java程序设计》第四周学习总结的更多相关文章
- 20165305 苏振龙《Java程序设计》第一周学习总结
20165305 <Java程序设计>第一周学习总结 教材学习内容总结 我重点学习了jdk安装后面的第一章内容,算是更进一步的的了解了一些Java方面的基础知识. Java平台概论 Jav ...
- 20165305 苏振龙《Java程序设计》第四周课上测试补做
第一次测试 第二次测试 第三次测试 上传代码 第四次测试 总结 之前我一直在git bash进行程序设计,但是对于我来说操作起来有点困难,所以我改用了虚拟机,之后之前一直困扰我的问题在虚拟机下就没有了 ...
- 20165305 苏振龙《Java程序设计》第九周学习总结
第十三章 Java网络编程 学习了解用于网络编程的类,了解URL.Socket.InetAddress和DatagramSocket类在网络编程中的重要作用 使用URL创建对象的应用程序称作客户端程序 ...
- 20165305 苏振龙《Java程序设计》第八周学习总结
第十二章 •如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run()方法中. •如果想要加装主线程,就要创建 Thread 实例,要 ...
- 20165305 苏振龙《Java程序设计》第五周学习总结
第七章 Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类. 和某类有关的匿名类就是该类的一个子类,该子类没有明显的用类声明来定义,所以称做匿名类. 和某接口有 ...
- 20165305 苏振龙《Java程序设计》第三周学习总结
面向对象和面向过程: 面向对象是相对面向过程而言的,面向过程强调的是功能行为,面向对象是将过程封装进对象,强调具备了功能的对象,面向对象是基于面向过程的. 面向对象的三个特征: 封装,继承,多态: 对 ...
- 20165305 苏振龙《Java程序设计》第二周学习总结
代码托管(ch2,ch3) 脚本截图 教材内容总结 类型.变量与运算符 基本类型 整数(short.int.long) 字节(byte) 浮点数(float/double) 字符(char)将一个数字 ...
- 20165305 苏振龙 《Java 程序设计》第一次测试总结
第一个代码运行结果截图 功能:从1到5305进行求和 第二个代码运行结果截图 代码托管 第三个代码运行结果截图 (1)源文件的名字为Person.java (2)生成2个字节码文件,名字为Person ...
- 20165305 苏振龙《Java程序设计》第八周课上测试补做
1. 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql,提交导入成功截图 2. ...
随机推荐
- 在Java程序中读写windows共享文件夹
摘要 使用Java通过JCIFS框架读写共享文件夹,使用SMB协议,并支持域认证. 项目常常需要有访问共享文件夹的需求,例如读取共享文件夹存储的视频.照片和PPT等文件.那么如何使用Java读写Win ...
- 内核poll机制
内核版本:linux2.6.22.6 硬件平台:JZ2440 驱动源码 poll_key_int_drv.c : #include <linux/module.h> #include &l ...
- linux批量替换文本字符串
(一)通过vi编辑器来替换.vi/vim 中可以使用 :s 命令来替换字符串.:s/well/good/ 替换当前行第一个 well 为 good:s/well/good/g 替换当前行所有 well ...
- caffe编译报错解决
添加ssd中的一些层之后,编译报错: ../lib/libcaffe.so.1.0.0-rc5:对‘boost::match_results<__gnu_cxx::__normal_iterat ...
- 认识程序的执行:从高级语言到二进制,以java为例
java 高级编程语言,面向对象*.java是源码文件*.class是字节码文件,一种中间文件. JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码 jar – 打包工具,将相关的 ...
- InnoDB Lock
众所周知innodb的锁是行级锁,这样说也没有问题,只是还可以细分而已.推荐阅读何登成大牛的博客http://hedengcheng.com/?p=771 innodb的锁有三种算法,分别如下: Re ...
- Navicat工具的使用 2
再双击t1表 进入表 往里面填数据插记录就可以了 tab键往下行 新建一张dep表 部门表 #4. 设计表:外键 新建dep表 员工表新增dep_id 做外键 #5. 新建查询 可以直接在这里查询,不 ...
- 新辰:共享是SEO的思维 用户是SEO的核心
大家都知道.SEO一直没有一个能够定义的核心.新辰知道全部的东西里面在互联网领域链接是非常重要的.所以新辰觉得做SEO就是把链接做好.因此,链接对于一个站点来说简单分能够分成两种.内部的链接和外部的链 ...
- sublime使用手册
1.怎么批量选中开头和结尾?将光标定位到区域的开头,ctrl+alt+下键(一直按下键). 2.怎么打开和关闭tab的自动补全?preferences->settings->User{ & ...
- 设置td中的table置顶
style="vertical-align: top" <td colspan="11" rowspan="5" style=&quo ...