您的位置:首页 > 编程语言 > Java开发

Java 基础知识学习笔记——继承相关内容

2016-11-25 00:00 726 查看

继 承

1. 类、超类、子类

子类不能直接使用超类的私有域,需要调用超类的方法。使用super关键字代表超类,从而使用超类的方法。因为子类的构造器不能访问超类的私有域,使用super(参数)对超类进行初始化。注意:super(参数)语句必须放在子类构造方法的第一行;如果超类没有无参构造器,并且未使用super(参数)调用其他构造器,java编译器将报错。

多态:一个对象变量可以存储子类的变量。

动态绑定:虚拟机根据应该执行的类和方法的签名,来决定执行哪种方法。

final关键字:如果修饰类,该类不能被继承,该类中的方法自动成为final,域不变。fianl方法不能被重写,fianl域不能被修改。

强制类型转换:只能在继承层次内进行类型转换;再将超类转换成子类时,应该使用instanceof进行检查。

抽象类:包含一个或多个抽象方法的类必须被声明为抽象类,抽象类可以没有抽象方法,可以有具体的方法和域。

2. Object

Object类是所有类的超类,基本类型不是对象,所以没有超类,但是基本类型的数组扩展于超类。

equals方法:比较两个对象是否相等,使用Object.equals(a,b)方法,解决a或b为null的情况。(a、b都为null返回true;a或b为null返回false;a、b都不为null则调用a.equals(b))

equals方法要符合,自反性、对称性、传递性、一致性。使用getClass()方法或instanceof()方法判断相等,要看超类与子类的具体情况。

hashCode方法:计算的内容要与equals方法中的内容一致。在java7中建议使用Object.hashCode(),解决参数为null的问题。Object.hash()会返回多个参数的散列码之和。使用Array.hashCode()计算数组的散列码。

toString方法:标准格式返回类名加方括号括起来的域值。使用Array.toString()获得数组的toString结果。

3. 泛型数组列表ArrayList

构造:ArrayList<..> al = new ArrayList<..>();数组列表可以设置初始容量,但并不含有元素;使用add()方法添加元素;使用size()方法返回元素个数;使用trimToSize()方法清除多余空间。

访问方法:使用set()、get()方法设置与获取元素,数组列表的第一个元素是1而不是0;也可以使用toArray()方法将数组列表转换成数组。

4. 对象包装器与自动装箱

基本类型有与之对应的对象,他们之间可以自动转化,成为装箱与拆箱。

5. 参数数量可变的方法

使用…符,可以构造一个传递任意参数数量的方法。比如:public double max(double… values){ } 传进来的参数是一个double类型的数组。

6. 枚举类

首先声明一个枚举类:如enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};所有枚举类型都是Enum类的子类,继承了一些方法toString()、valueOf()、values()、ordinal()。

7. 反射

能够分析类能力的程序称为反射。

Class类:获取Class类对象的方法有3种。Object类中的getClass()方法;Class.forName(String str)方法,str要求是类名或接口名;T.Class,T是任意类型的java对象。

利用反射分析类的能力:java.lang.reflect包中有Field、Method、Constructor类,用于描述域、方法和构造器。Class类中的getFields、getMethods、getConstructors方法返回这三种类型的public修饰的数组,getDeclareFields、getDeclareMethods、getDeclaredConstructor返回所有访问权限的数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: