多态
多态:同一个事物,作用条件不一样,结果不一样
多态:同一个父类引用,指向不同的子类实例,执行不同的操作
方法重写是实现多态的前提
多态实现步骤:
1)在抽象父类中定义抽象方法
2)子类继承抽象父类并重写父类中所有的抽象方法
3)测试类中创建父类引用指向不同的子类实例,父类引用调用方法,调用的是子类重写后的那些方法
向上转型(自动类型转换):父类的引用指向子类的实例
向下转型(强制类型转换):子类的引用指向父类的引用
父类的引用无法调用子类里独有的方法,必须使用向下转型成对应的子类,才能通过子类去调用子类中独有的方法
在向下转型的时候,容易出现ClassCastException(类型转换异常),原因是将父类引用转换成了不匹配的子类对象
可以通过instanceof关键字类判断父类引用指向的是哪一个子类实例,从而避免类型转换异常
方法重写
什么是方法重写
方法重写规则
方法名相同
方法重写和方法重载的比较
Object类


Object 类中的equals方法
(1)Object类的equals()方法与==没区别
(2)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()
(3)Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值
instanceof用于判断一个引用类型所引用的对象是否是一个类的实例
为什么要使用多态
频繁修改代码 代码可拓展性 可维护性差
使用多态优化