Java面试题30——面向对象特征之多态
面向对象特征——多态 多态有两种描述方式,一种是方法的多态性、一种是对象的多态性。多态是发生在编译期间的。 一、方法的多态性: ① 方法的重载:同一个方法名称,会根据传入参数的类型及个数不同执行不同的方法体; ② 方法的覆写: 同一个方法,会根据子类的不同,实现不同的功能。也就是继承了父类的多个子类对父类方法的重写,导致了方法的多态性。 二、对象的多态性(指的是发生在继承关系之中,子类和父类之间转换问题) 父类对象——子类实例: ① 向上转型(自动完成):父类 父类对象 = 子类实例 <new 实现> 子类对象——父类实例: ② 向下转型(强制完成):子类 子类对象 = (子类)父类实例 <new 实现> 下面看一个实例,让我们加深对多态的理解!! class A { public void m(A a) { System.out.println("AA"); } public void m(D d) { System.out.println("AD"); } } class B extends A { @Override public void m(A a) { System.out.println("BA"); } public void m(B b) { System.out.println("BD"); } public static void main(String[]