Java是一种面向对象编程语言,抽象、继承、封装、多态,是面向对象语言的四个基本特征,
抽象、继承和封装是多态的基础,同时多态是抽象、继承、封装的表现形式,
因此,要构成多态的必要条件,
1.必须要有继承,
2.必须要有子类重写父类的方法,
3.父类的引用变量指向子类的实例,
第2点中重写父类的方法的条件有三种情况是不能实现多态
1.父类的方法是静态方法,静态方法是属于类本身而不是对象,静态方法是跟随类本身在类加载时期同时加载至JVM,
2.父类的方法是final修饰,不能够被子类重写,
3.父类的方法是private私有方法,至提供给对象本身使用,对子类不开放,或者是protected方法。它虽然能被子类所重写,但是protected受保护的对象不能被别的外部方法访问,
因此也是不能够体现多态的特性,
多态的分类有两类
1.方法的重载,多个方法的方法名相同,参数列表,参数类型,参数顺序的不同构成一组重载方法,在编译时期体现,
2.方法的重写,子类在继承父类时,重写父类的方法,并且在程序运行时期调用父类引用指向的对象的方法,