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返回所有访问权限的数组。
相关文章推荐
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- 【Java学习笔记】基础知识学习7【字符串相关】
- 【Java学习笔记】基础知识学习10【继承与多态】
- [学习笔记] Java核心技术 卷一:基础知识 对象与类、继承(二)
- 【安卓学习笔记】JAVA基础Lesson7-继承
- Java学习笔记—基础知识点拾漏补遗
- [学习笔记] Java核心技术 卷一:基础知识 Java 的基本程序设计结构(一)
- java学习笔记(1)-基础知识记录
- 超详细的java基础知识学习(java SE、javaEE)笔记 核心重点!
- java--数组的学习笔记一之基础知识
- 计算机基础知识+Java语言基础 +JAVA学习笔记-DAY01
- DOM相关基础知识学习笔记(一
- Java 基础知识学习笔记——集和
- Java基础知识学习笔记总结
- Javaweb、javaEE学习笔记基础知识
- 超详细的java基础知识学习(java SE、javaEE)笔记 核心重点!
- 学习Java基础的一些知识(9)继承
- 【java基础知识(学习笔记)】--运算符
- 【java基础知识(学习笔记)】--随机数类Random