HeadFirstJava 7,8,9
7继承和多态
7.1继承
- 子类继承父类:public class familyDoctor extends Doctor{};//使用extend
- 覆盖:子类重新定义继承下来的方法或者延伸此方法的行为
- private类型的不会被继承,public类的会被继承
- 继承下来的方法可以被覆盖掉,但实例变量不会被覆盖掉
- super(参数):调用父类中的某一个构造函数。
- final修饰符表示它是继承shu
7.2多态
- 多态下,引用和对象可以是不同的类型:Aminal myAminal = new Dog();//myAminal可以放任何Aminal的子类对象进去
- 参数和返回类型也可以多态
- 优点:编写出引进新型子类也不必修改程序
7.3重载
- 两个方法的名称相同,但参数不同,所以,重载与多态毫无关系
- 返回类型可以不同
- 不能只改变返回类型
- 可以更改存取权限
8接口与抽象类
8.1 抽象类
- abstract:编译器不会允许初始化抽象类
- 抽象类可以带有抽象和非抽象的方法,但是非抽象类不可以带有抽象的方法
8.2每个对象都具有的方法
- equals();
- getClass();//告诉你这个对象是从哪里被初始化的
- hashCode();//列出此对象的哈希代码,可以想象成唯一的ID
- toStrig();//列出类的名称和我们不太关心的数字
- instanceof运算符,检查转换会不会转换错: o instanceof Dog;
8.3接口
- interface关键字
- 接口的定义:
public interface pet{//接口的方法必须是抽象的,以分号记录,没有内容public abstract void beFriendly();};
- 接口的实现:
//通过,来实现多个接口
public class Dog extends Canine implements Pet,Saveable{public void beFriendly(...);//必须在这里实现出pet的方法
};//使用implements关键字,注意到实现interface时还是必须在某个类的继承之下
9构造器与垃圾收集器
9.1堆和栈
- 堆heap:所有的对象,可垃圾回收
- 栈stack:方法调用和局部变量,这些的都是被声明在方法中,是暂时的,其生命周期只限于被放在栈的这一段时间
9.2 构造函数
- 构造函数不是方法,带有new的时候会执行的程序代码,唯一能够调用构造函数的方法就是创造一个类,就算你没有写构造函数,电脑也会帮你写一个
- 构造函数会在对象能够被赋值给引用之前就就执行
- 构造函数不会有返回类型:public duck(){};
- 构造函数不会被继承
- 重载构造函数可以让你有一个以上的构造函数且参数都不相同
9.3父类与构造函数
- 创建新对象时,所有继承下来的构造函数都会执行,因为调用父类的构造函数将会导致父类的构造函数进入堆顶,所以会先执行父类的构造函数再执行自己的,编译器会帮我们自动加上super();的调用
- 所以对super();的调用必须是构造函数的第一句
- this();只能用在构造函数中,与super()不能兼得,都必须是第一行语句
- this();构造函数会调用该构造函数,让它来执行真正的构造函数
9.4 垃圾收集器
- 对象的生命周期完全要看引用它的引用,引用还活着,则对象也会继续活着堆上
- 实例变量的寿命与对象相同,如果对象还活着,则实例变量也会是活着
HeadFirstJava 7,8,9相关推荐
- Mysql,SqlServer,Oracle主键自动增长的设置
Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...
- linux启动,重启,停止 jar,.sh脚本
linux启动,重启,停止 jar,.sh脚本 #配置jar名称 APP_NAME=receiver.jar#使用说明,用来提示输入参数 usage() { echo "Usage: sh ...
- 堆栈,数据,文本,heap,bss,text data,stack
堆栈,数据,文本,heap,bss,text data,stack text data bss stack heap 段 根据APUE,程序分为下面的段:.text, data (initialize ...
- TVM示例展示 README.md,Makefile,CMakeLists.txt
TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...
- TVM,Relay,Pass
TVM,Relay,Pass Relay介绍 主要结合TVM的文档(https://tvm.apache.org/docs/dev/relay_intro.html),介绍一下NNVM的第二代Rela ...
- LED芯片,应用品,蓝宝石衬底,集成电路,UV
LED芯片,应用品,蓝宝石衬底,集成电路,UV 三安主要从事全色系超高亮度LED芯片的研发,生产与销售,产品性能稳定,品质优异. 产品覆盖 三安能够提供全波长范围的LED,产品可覆盖全部可见光和不可见 ...
- CPU,GPU,Memory调度
CPU,GPU,Memory调度 HDD&Memory&CPU调度机制(I/O硬件性能瓶颈) 图1. HDD&Memory&CPU调度图 CPU主要就是三部分:计算单元 ...
- 自动驾驶QNX,Linux,Autosar概述
自动驾驶QNX,Linux,Autosar概述 QNX是一个分布式.嵌入式.可规模扩展的实时操作系统.遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具).部分遵循POSIX.1b( ...
- i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核
i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核 概述 i. MX6UltraLite作为i.MX6系列的扩展,一系列高性能.超高效的处理器 ...
- CPU,GPU,GPGPU
CPU,GPU,GPGPU 1.基本概念 1.1 GPU 图形处理器(bai英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉du处理器.zhi显示芯片,是一种 ...
最新文章
- 图表对比详解:亚马逊、微软和谷歌云的机器学习即服务哪家强
- pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器
- python seaborn 热图_Python-Seaborn热图绘制的实现方法
- 请问染色浴比对染色性能有影响吗?浴比对染色的哪些性能有影响?染色亲和力测定有哪些实际应用意义
- 每天进步一点点《ML - 逻辑回归》
- Coins(HDU2844)
- java属于什么语言_java是什么语言 ?是什么系统?
- win10键盘全变成快捷键_电脑键盘灵敏度设置方法
- 【梳理】离散数学 第10章 群与环 10.2 子群与群的陪集分解
- win7打开chm文件显示“已取消到该网页导航”
- 读后感——《软件工程》——软件的本质及软件工程
- C++学习方法(经典)
- 长波红外线灯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Java HotSpot 虚拟机选项 -X -XX 的含义
- ftp命令行登陆 用法指南
- 【软件工程】统计文章字数和出现频率较高词汇的程序实现
- LeetCode 第 993 题:二叉树的堂兄弟结点
- Vue调用摄像头录制视频和音频并上传给后端或下载到本地
- 程序员必读的30本书单--超级推荐
- 导出iphone手机安装包的几种方法