类、超类和子类
定义子类(使用关键字extends表示继承)
覆盖方法
子类构造器
一个对象变量可以指向多种实际类型的现象称为多态,在运行时能够自动地选择适当的方法,称为动态绑定
继承层次
多态
理解方法调用(非private方法、static方法、final方法时,采用动态绑定,考虑重载解析。生成变量类型和引用类型的方法表。运行时:1、获取实际类型的方法表。2、查找定义了签名所在的类。3、调用)
覆盖一个方法时,子类方法的可见性不能低于超类方法
阻止继承:final类和方法
强制类型转换和instanceof运算符(尽量少用)
1、只能在继承层次内进行强制类型转换。2、在将超类强制转换成子类之前,应该使用instanceof进行检查
抽象类(abstract关键字):有一个或多个抽象方法的类,必须标注为抽象类。可以有字段和具体方法。
扩展抽象类,1、如果仍有未定义的抽象类的抽象方法,则子类也必须标记为抽象类。2、全部方法都定义,这样子类就不用标记为抽象了。
不含抽象方法,也可以声明抽象类。抽象类不能实例化
受保护访问(protected)
Object:所有类的超类
Object类型的变量
equals方法
相等测试与继承
toString方法
泛型数组列表(ArrayList)
new:声明数组列表
add:添加元素
ensureCapacity:分配额定大小的内部数组
new对象时,括号里也可以传初始化容量
分配数组列表和分配新数组的区别:前者只是可能有这么多个,具体的看实际添加的。后者是定
size:实际元素个数
trimToSize:调整存储块大小(一旦调整,再添加,则需要花时间移动存储块)
访问数组列表元素(get,set)
remove()
插入和删除的操作效率很低,对于较小数组列表可以忽略。如果元素较多,插入和删除操作又比较频繁,就应该考虑使用链表。
for each
类型化与原始数组列表的兼容性
对象包装器与自动装箱(装箱和拆箱是编译器要做的工作,而不是虚拟机)
参数数量
文章介绍了Java编程中类、超类和子类的继承关系,动态绑定的概念,以及多态的运用。详细讲解了覆盖方法的规则,final类和方法的作用,以及抽象类的定义与扩展。还探讨了ArrayList作为泛型数组列表的使用,包括添加、删除、访问元素的方法,以及性能考虑。同时提到了对象的equals方法和toString方法在继承中的应用,以及类型化与原始数组列表的兼容性。
809

被折叠的 条评论
为什么被折叠?



