【Core Java】读书笔记 Part 2
本文总结的是书中的:第 5 章 继承 前几章的总结在:ZYF.IM-【Core Java】读书笔记 Part1 5 继承 5.1 类、超类和子类 1、有些人认为 super 与 this 引用是类似的概念,实际上,这样比较并不太恰当。这是因为 super 不是一个对象的引用,不能将 super 赋予另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。 2、使用 super 或 this 调用构造器的语句必须时子类构造器的第一条语句。也就是说 super 和 this 不能同时出现在一个构造器中。 3、this 关键字。 引用隐式参数 调用该类其他的构造器 4、super 关键字 调用超类的方法 调用超类的构造器 5、调用构造器的语句只能作为另一个构造器的第一条语句出现。 6、一个对象变量可以指示多种实际类型的现象被称为多态。在运行时能够自动的选择则调用哪个方法的现象称为动态绑定。 7、Manager[] managers = new Manager[10]; 将它转换成 Employee[] 数组是完全合法的: Employee[] staff = managers;// OK 毕竟如果manager[i]是一个 Manager,也一定是一个 Employee,然而,实际上,将会发生一些令人惊讶的事情。要切记 managers 和 staff 引用的时同一个数组。现在请看: staff[0] = new Employee("Harry Hacker", ..); 编译器竟然接纳了这个赋值操作。staff[0]与manager[0]引用的是同一个对象,似乎我们把一个普通雇员擅自归入了经理行列中了。这时一个种很忌讳发生的情形,当调用managers[0].setBonus(1000)的时候,将会导致调用一个不存在的实例域,今儿搅乱相邻存储空间的内容。 为了确保不发生这类错误,所有数组都要牢记创建它们的元素类型,并负责监督仅将类型兼容的引用存储到数组中。 ...