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相关推荐

  1. Mysql,SqlServer,Oracle主键自动增长的设置

    Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...

  2. linux启动,重启,停止 jar,.sh脚本

    linux启动,重启,停止 jar,.sh脚本 #配置jar名称 APP_NAME=receiver.jar#使用说明,用来提示输入参数 usage() { echo "Usage: sh ...

  3. 堆栈,数据,文本,heap,bss,text data,stack

    堆栈,数据,文本,heap,bss,text data,stack text data bss stack heap 段 根据APUE,程序分为下面的段:.text, data (initialize ...

  4. TVM示例展示 README.md,Makefile,CMakeLists.txt

    TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...

  5. TVM,Relay,Pass

    TVM,Relay,Pass Relay介绍 主要结合TVM的文档(https://tvm.apache.org/docs/dev/relay_intro.html),介绍一下NNVM的第二代Rela ...

  6. LED芯片,应用品,蓝宝石衬底,集成电路,UV

    LED芯片,应用品,蓝宝石衬底,集成电路,UV 三安主要从事全色系超高亮度LED芯片的研发,生产与销售,产品性能稳定,品质优异. 产品覆盖 三安能够提供全波长范围的LED,产品可覆盖全部可见光和不可见 ...

  7. CPU,GPU,Memory调度

    CPU,GPU,Memory调度 HDD&Memory&CPU调度机制(I/O硬件性能瓶颈) 图1. HDD&Memory&CPU调度图 CPU主要就是三部分:计算单元 ...

  8. 自动驾驶QNX,Linux,Autosar概述

    自动驾驶QNX,Linux,Autosar概述 QNX是一个分布式.嵌入式.可规模扩展的实时操作系统.遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具).部分遵循POSIX.1b( ...

  9. i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核

    i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核 概述 i. MX6UltraLite作为i.MX6系列的扩展,一系列高性能.超高效的处理器 ...

  10. CPU,GPU,GPGPU

    CPU,GPU,GPGPU 1.基本概念 1.1 GPU 图形处理器(bai英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉du处理器.zhi显示芯片,是一种 ...

最新文章

  1. 图表对比详解:亚马逊、微软和谷歌云的机器学习即服务哪家强
  2. pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器
  3. python seaborn 热图_Python-Seaborn热图绘制的实现方法
  4. 请问染色浴比对染色性能有影响吗?浴比对染色的哪些性能有影响?染色亲和力测定有哪些实际应用意义
  5. 每天进步一点点《ML - 逻辑回归》
  6. Coins(HDU2844)
  7. java属于什么语言_java是什么语言 ?是什么系统?
  8. win10键盘全变成快捷键_电脑键盘灵敏度设置方法
  9. 【梳理】离散数学 第10章 群与环 10.2 子群与群的陪集分解
  10. win7打开chm文件显示“已取消到该网页导航”
  11. 读后感——《软件工程》——软件的本质及软件工程
  12. C++学习方法(经典)
  13. 长波红外线灯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. Java HotSpot 虚拟机选项 -X -XX 的含义
  15. ftp命令行登陆 用法指南
  16. 【软件工程】统计文章字数和出现频率较高词汇的程序实现
  17. LeetCode 第 993 题:二叉树的堂兄弟结点
  18. Vue调用摄像头录制视频和音频并上传给后端或下载到本地
  19. 程序员必读的30本书单--超级推荐
  20. 导出iphone手机安装包的几种方法

热门文章

  1. PS颜色校正(Photoshop颜色显示偏色)
  2. nginx keepalived vip 高可用
  3. Vector CANape - How to Send Receive CAN Message in CANape
  4. RF-实现接口自动化
  5. 网易云镜像仓库选择镜像
  6. 南京师范大学会计专硕考研上岸经验分享
  7. 推荐10个最好用的数据采集工具
  8. python如何提取数据_python提取数据的常用方法
  9. 通过银行卡号获取银行名称
  10. [Prescan] Prescan与Simulink联合