# 疑问
修饰符,访问控制?
装箱、拆箱?
多态?
指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。
形成条件:继承、重写(不是重载)、向上转型
对于Java而言,它多态的实现机制遵循一个原则:当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在父类中定义过的,也就是说被子类覆盖的方法。
转型?
向上转型:多态本身就是子类类型向父类类型向上转换的过程,这个过程是默认的。当父类型引用指向一个子类对象时,便是向上转型。
向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。 一个已经向上转型的子对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型。
为什么要转型?
当使用多态方式调用方法时,首先检查父类是否有该方法,如果没有,则编译报错,也就是说,多态不能调用子类拥有而父类没有的方法,这也就是 多态的不足,这就需要向下转型,调用子类独有的方法。
ArrayList<E>, E为引用类型,int --> Integer...
ArrayList<String> arr = new ArrayList<String>(); //添加元素 arr.add(e); //访问元素 arr.get(index); //修改元素 arr.set(index, newValue); //删除元素 arr.remove(index); //数组长度 arr.size();
1
2
3
4
5
6
7
8
9
10
11
12泛型?
序列化?