多态:
多态的概念:一种事物的多种形态;允许不同类的对象对同一消息做出不同的响应
多态的前提:继承,重写;向上转型(父类引用指向子类对象)
多态的作用:提高代码的可用性;降低模块之间的耦合度
多态分类:
编译时多态:设计时方法重载
运行时多态:程序运行时动态决定调用哪个方法
向上转型和向下转型
向上转型:父类引用指向子类实例,可以调用子类重写父类派生的方法,无法调用子类独有方法
注意:父类中的静态方法无法被子类重写,所以向上转型之后,只能调用到父类原有的静态方法
语法:Pet snoopy = new Dog();
向下转型:子类引用指向父类对象,此处必须进行强转,可以调用子类特有的方法了;
必须满足转型条件,才能进行向下转型
语法:Dog snoopy = (Dog)mybabay;
instanceof运算符:判断左边对象是否是右边类的实例,返回值为布尔类型
可以判断左边对象是都具有右边对象类型的特征或者说是是否是由右边类实例化产生的
类方法(静态方法)只能被子类继承使用,无法重写;final、static修饰的特性
抽象类