5.1类,超类,子类
1.超类就是我们常说的父类,但是超类这个名称对于某些关键字更好理解
超类里面的方法往往对于子类并不适用,所以需要提供新的方法override超类的方法
2.但是子类的方法不能直接访问超类的私有域
如果需要访问,需要用到super关键字
public double getSalary{
double baseSalary=super.getSalary();
return baseSalary+bonus;
}
3.super有两个用途,一是调用超类的方法,二是调用超类的构造器
is-a规则:子类的每个对象也是超类的对象
4.final类和方法阻止继承
final class Executive extends Manager
不允许扩展子类
5.抽象类
抽象类一般设计来被继承,子类来实现部分或全部抽象方法
抽象类被继承后,子类必须重写这个方法
5.2 object 所有类的超类
equal方法检测一个对象是否等于另一个对象
hashCode方法
toString方法
5.3泛型数组列表ArrayList
类似C++中的vector不定长数组
5.4 对象包装器与自动装箱
将int类型转换为对象,如Integer类对应着基本类型int,这些类成为包装器(wrapper)
ArrayList list= new ArrayList<>();
list.add(3)
此时会自动转换为
list.add(Integer.valueof(3))
这种变换称为自动装箱(autoboxing)
当一个Integer对象付一个int值时,将会自动拆箱
int n=list.get(i);
翻译成
int n=list.get(i).intValue;
5.6枚举类型
Enum
public enum Season {
SPRING,SUMMER,AUTUMN,WINTER
}