【110天】Java——《Head First Java》笔记(第7-8章)

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【110天】Java——《Head First Java》笔记(第7-8章)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

【110】Java——《Head First Java》笔记(第7-8章)


一、继承

  1. 问:继承的作用是什么

    答:1、止子类出现重复的程序代码。2、定义出共同的协议。

  2. 问:继承如何判断?

    答:IS-A测试(确保子类是父类的一种更特定的类型)

  3. 问:子类继承父类什么东西?

    答:成员(实例变量、方法)

注意:public类型成员会被继承,但是private类型成员不会被继承,

  1. 问:子类如何调用父类?

    答:使用super关键字

    public void roam() {     suPEr.roam();         super.a; } 

二、多态

  1. 问:多态的作用是什么?

    答:1、可以用父类做为方法的参数、返回类型或数组的类型,通过这个机制,加入新的子类时,不用重写或修改处理这些类型的程序。

//引用类型可以是实际对象类型的父类 Animal[] animals = new Animal[5]; animals [0] = new Dog(); animals [1] = new Cat(); animals [2] = new Wolf(); animals [3] = new Hippo(); animals [4] = new Lion();  //参数和返回类型都可以是多态 class Vet {     public void giveShot(Animal a){     a.makeNoise();     }     }  class PetOwner{     public void start(){         Vet v = new Vet();         Dog d = new Dog();         Hippo h = new Hippo();         v.giveShot(d);         v.giveShot(h);     } } 
  1. 问:多态的局限性?

    答:子类中那些非继承于父类的方法,无法直接使用,必须先进行强制转换。

Object o = new Dog(); Dog d = (Dog) o; d.roam();

若你不确定它是否是Dog类型,你可以使用instanceof这个运算符来检查,若是类型转换错了,你会在执行期间遇到ClassCastException异常并且终止。

if(o instanceof Dog){     Dog d = (Dog) o; } 
  1. 问:子类继承父类什么东西?

    答:成员(实例变量、方法)

注意:public类型成员会被继承,但是private类型成员不会被继承。

  1. 问:子类如何调用父类?

    答:super

三、过载/重载(overload

  1. 问:重载的规则是什么?

    答:1、返回类型可以不同。2、不能只改变返回类型。【返回类型应该是父类返回类型的子类】3、可以任意更改存取权限。4、参数种类和顺序必须不同。

四、覆盖/重写()

  1. 问:覆盖的规则是什么?

    答:1、参数必须要一样。2、返回类型必须要兼容。【不论父类声明的返回类型是什么,子类必须要声明返回一样】3、存取权限必须相同。【不能覆盖掉一个公有的方法并将它标记为私有】

五、抽象(abstract

  1. 抽象类

    • 抽象类不可被初始化。

    • 抽象类一定要被继承。

    • 抽象类里面包含抽象方法和非抽象方法。

  2. 抽象方法

    • 抽象方法一定要被覆盖。

    • 抽象方法没有方法体。

    • 若有抽象方法,则其类必须为抽象类,非抽象类中不可拥有抽象方法。

    • 抽象方法的意义:就算无法实现出方法的内容,但还是可以定义出一组子类共同的协议。

    • 继承树结构下第一个具体类必须要实现出所有的抽象方法。

六、终极对象(Object

  1. 常用方法

    • equal(Object o)【建议覆盖】

    • hashCode()【建议覆盖】

    • toString()【建议覆盖】

    • getClass()

  2. 两个作用

    • 作为多态让方法可以应付多种类型的机制。

    • 提供在Java执行期间对任何对象都有需要的方法的实现程序代码。

  3. java.lang.Object

七、接口(interface)

  1. 实现某接口的类必须实现它所有的方法,这些接口方法自带publicabstract,但可以不用写。

  2. 类可以实现多个接口

八、如何判断设计类、子类、抽象类还是接口?

  1. 类——若新的类不能通过其它类的IS-A测试,就另写一个不继承其它类的类。

  2. 子类——只有在需要某类的特殊化版本时,以覆盖或增加新的方法的方式来继承现有的类。

  3. 抽象类——当你需要定义一群子类的模板,又不想让程序初始化此模板时使用。

  4. 接口——如果想要定义出类可以扮演的角色。

九、对象声明、创建、赋值过程

Dog myDog = new Dog();
  1. 声明引用变量

    Dog myDog是要求JVM在栈空间分配空间给引用变量,并将此引用变量命名为myDog,此引用变量将永远被固定为Dog类型。

注意:区分引用与引用变量,引用是引用变量里存的指向对象的地址。

  1. 创建对象

  2. Dog();是要求JVM分配堆空间给新建的Dog对象。

  3. 连接对象和引用变量
    将新的Dog赋值给myDog这个引用变量,换言之即设定遥控器。

十、其它碎片知识

  1. 继承的层次不要太深。

  2. 没有私有类,但有内部类。

  3. 三种方法防止某个类被做出子类:

    • 存取控制:不标记私有,也不标记为公有,这样的非公有类,只能被同一个包的类作出子类。

    • 使用final修饰符,表示它是继承树的末端,不能被继承。

    • 让类只拥有PRivate的构造程序。

  4. final针对类、实例变量、方法:

    • 类——不可被继承

    • 属性——不可被更改(常量)

    • 方法——不可被覆盖

脚本宝典总结

以上是脚本宝典为你收集整理的【110天】Java——《Head First Java》笔记(第7-8章)全部内容,希望文章能够帮你解决【110天】Java——《Head First Java》笔记(第7-8章)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。