-
对于继承,子类对象重写父类的一个属性和一个方法,则对于new子类的父类来说,调用属性是父类的,调用方法是子类的,而且不能使用子类独有的属性和方法。
-
对于 instanceof :例如 A instanceof B,判断对象A是不是类型B的实例,测试结果是父类对象new一个子类,
(1)只要是在从对象类到new的类的路径上的类型去作为B,去判断(包括它俩自己)判断结果都是true ;
(2)用对象的父类、父父类等祖宗类作为B,判断结果为true;
(3)用new的类的子类、子子类等后代作为B,判断结果为false;
(4)除此之外,不是对象类的后代类的直接报错,是后代类不满足上述条件,判断结果为false。
-
(1)父类转化子类:强制转换,可能丢失精度
(2)子类转化父类:丢失自己特有的方法属性
-
代码块:在类中{}括起来的代码。优先级:静态代码块>匿名代码块>构造函数。静态代码块和类一起构造,匿名代码块在类构造完成后执行一次(只执行一次),构造函数在类对象构造完成后赋初值。
-
抽象类可以有抽象方法和普通方法,非抽象类只能有普通方法不能有抽象方法。
-
抽象定义关键字:abstract,接口定义关键字:interface,继承:extends,实现接口:implements。
-
接口中默认的实现方法都是 public abstract(可以不用写) ,属性默认都是public static final(可以不用写)。
-
选中代码 按 Ctrl + Alt +t 可以打开快捷操作,例如try操作
-
错误和异常的继承关系如下: