1.方法覆盖条件
条件一:两个类必须要有继承关系;
条件二:重写之后和之前的方法具有相同的返回值类型,相同的方法名,相同的形参列表。
条件三:访问权限不能更低可以更高
条件四:重写之后的方法不能比之前的方法抛出更多的异常,可以更少。
2.注意事项
注意一:方法覆盖只是针对于方法,和属性无关;
注意二:私有方法无法覆盖;
注意三:构造方法不能被继承,所以构造方法也不能被覆盖;
注意四:方法覆盖只是针对于实例方法,静态方法覆盖没有意义;
3.多态的基础语法
向上转型:子—-》父
向下转型:父—-》子
注意:java中允许向上转型也允许向下转型,两种类型间必须有继承关系;
4.instanceof
第一:instanceof可以在运行阶段动态判定引用指向的对象的类型;
第二:instanceof的语法(引用instanceof类型)
第三:instanceof运算符的运算结果只能是true或false
第四:c是一个引用,c变量保存了内存地址指向了堆中的对象;
假设(c instanceof Cat)为true表示:
c引用指向的堆内存中的java对象是一个cat
假设(c instanceof Cat)为false表示:
c引用指向的堆内存中的java对象不是一个cat
