- 抽象类和接口的区别
抽象类是用来捕捉子类的通用特性的。所以当基本功能在不断变化时,就要用抽象类。如果这个时候用接口,那就要改变所有实现接口的类。
接口是抽象方法的集合,更注重于功能本身。多继承必须使用接口。 - 抽象方法
普通类不能有抽象方法,只有抽象类才有。
抽象方法没有方法体。如果一个抽象的int方法有方法体,那么它应该返回什么?所以直接连{}都不要了
- 静态方法不能访问非静态方法
- 子类方法不能直接访问超类私有域>>所以有了super
但是子类如果想访问,就应该是protected(但实际上除了子类,同一个包内也可以) - this代表的是隐式参数p
- 多态,指的就是动态绑定。静态绑定指的是:private,static和final
- 覆盖方法时,子类方法不能低于父类方法的可见性
- Final的目的就是阻止继承,不允许扩展
- 类声明为final,方法自动为final,但是不包括域
- 向下转型时,往往 instanceof和强转是一起出现的
- 包含抽象方法的类一定是抽象的
- 如果重新定义equals,就必须要重新定义hashCode
- 由于toARRAY空参方法只能返回obj数组,所以Integer[] array = list.toArray(new Integer[list.size()]);
- 可变参数三个点(double,,, value)
- 枚举永远不要用equals而是要直接==
Enum.valueOf(Size.class, input);
使用一个string来反过来获得对应的具体枚举常量
17. 所有枚举都有values()方法,返回所有枚举值的数组