脚本宝典收集整理的这篇文章主要介绍了【110天】Java——《Head First Java》笔记(第7-8章),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
【110】Java——《Head First Java》笔记(第7-8章)
一、继承
问:继承如何判断?
答:IS-A测试(确保子类是父类的一种更特定的类型)
问:子类继承父类什么东西?
答:成员(实例变量、方法)
二、多态
//引用类型可以是实际对象类型的父类 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); } }
问:多态的局限性?
答:子类中那些非继承于父类的方法,无法直接使用,必须先进行强制转换。
Object o = new Dog(); Dog d = (Dog) o; d.roam();
若你不确定它是否是Dog类型,你可以使用instanceof这个运算符来检查,若是类型转换错了,你会在执行期间遇到ClassCastException异常并且终止。
if(o instanceof Dog){ Dog d = (Dog) o; }
问:子类继承父类什么东西?
答:成员(实例变量、方法)
问:子类如何调用父类?
答:super
三、过载/重载(overload)
四、覆盖/重写()
问:覆盖的规则是什么?
答:1、参数必须要一样。2、返回类型必须要兼容。【不论父类声明的返回类型是什么,子类必须要声明返回一样】3、存取权限必须相同。【不能覆盖掉一个公有的方法并将它标记为私有】
五、抽象(abstract)
-
抽象类
抽象类不可被初始化。
抽象类一定要被继承。
抽象类里面包含抽象方法和非抽象方法。
-
抽象方法
抽象方法一定要被覆盖。
抽象方法没有方法体。
若有抽象方法,则其类必须为抽象类,非抽象类中不可拥有抽象方法。
抽象方法的意义:就算无法实现出方法的内容,但还是可以定义出一组子类共同的协议。
继承树结构下第一个具体类必须要实现出所有的抽象方法。
六、终极对象(Object)
-
-
两个作用
作为多态让方法可以应付多种类型的机制。
提供在Java执行期间对任何对象都有需要的方法的实现程序代码。
java.lang.Object
七、接口(interface)
八、如何判断设计类、子类、抽象类还是接口?
类——若新的类不能通过其它类的IS-A测试,就另写一个不继承其它类的类。
子类——只有在需要某类的特殊化版本时,以覆盖或增加新的方法的方式来继承现有的类。
抽象类——当你需要定义一群子类的模板,又不想让程序初始化此模板时使用。
接口——如果想要定义出类可以扮演的角色。
九、对象声明、创建、赋值过程
Dog myDog = new Dog();
注意:区分引用与引用变量,引用是引用变量里存的指向对象的地址。
创建对象
Dog();是要求JVM分配堆空间给新建的Dog对象。
连接对象和引用变量
将新的Dog赋值给myDog这个引用变量,换言之即设定遥控器。
十、其它碎片知识
以上是脚本宝典为你收集整理的【110天】Java——《Head First Java》笔记(第7-8章)全部内容,希望文章能够帮你解决【110天】Java——《Head First Java》笔记(第7-8章)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。