一点点core java的笔记-继承
继承
覆盖方法:子类无法直接访问超类的私有域,需用 super.接口
子类构造器:可用 super ()调用超类的构造器。
动态绑定:对象在运行时自动选择用哪个方法。
多态:一个变量可指示多种实际类型。(不要将起类的引用赋绐子类变量)
方法的调用:(名字与参数称为签名)
- 列举所有同名方法与超类中的public 方法
- 重载解析,参数类型匹配。
- 静态绑定,若为 Private、static、final,可直接知道。
- 虚拟机为每个类建了一个方法表,从子类→超类找方法。
阻止继承(覆盖): final 类与方法。
类型转换:在类的转换前用instance of检查(超类转为子类), 只能在继承层次内转换。
抽象类:如 person,包含一个或多个抽象方法,但不可实例化。
protected:允许子访问超类的方法或域(object 的 clone,第六章),还有同一个包中。
to string:当对象与一个字符串用+连接时, Java 编译自动调用to string
数组继承了 object 的 toString,所以要用Array. toString (数组 )修正。
Array List:用 new Array list <> ( ) 菱形语法。
new Array list < > (1 0 0) 为保存100 个元素的潜力。
可以用 trim To Size 方法将存储大小调为当前元素所需,多余由垃圾回收器回收。
对象包装器: Integer, Long... Integer. praseInt (string)。
自动装箱: list. add (3)自动转为list. add (Integer. value of
(3))。
也会转化 list. get (i).int Value(拆箱)。
装/拆箱为编译器插 入的方法,而不是虚拟机。
参数数量可变:如 double max (double... values)可接收多个参数。当可变参数在最后时,也可接收数组,也可将数组重新定义为可变参数。
枚举类:
比较枚举类型时直接用==即可,因为定义的是枚举类的实例。
Enum. valueOf (size. Class, input)返回 Size. input。
反射:能分析类能力的程序。
class 类: 所有对象都有运行时的类型标识。
Class t = e . getclass ()
Class t = Class. for Name (" Java. util. Random") Class t = Random. class
调用无参构造器: Random. class. newInstance ()
反射分析类的能力: 三个主要类Field, Method, constructor ljava.mg. reflect 包中) P 214
反射分析对象:
也可用 f.set (harry," Amy")
对象内部信息: new ObjectAnalyzer (). toString (obj)
反射写泛型数组代码:P202,反回Object 数组。
调用任意方法:P207