面向对象特征——多态
多态有两种描述方式,一种是方法的多态性、一种是对象的多态性。多态是发生在编译期间的。
一、方法的多态性:
① 方法的重载:同一个方法名称,会根据传入参数的类型及个数不同执行不同的方法体;
② 方法的覆写: 同一个方法,会根据子类的不同,实现不同的功能。也就是继承了父类的多个子类对父类方法的重写,导致了方法的多态性。
二、对象的多态性(指的是发生在继承关系之中,子类和父类之间转换问题)
父类对象——子类实例:
① 向上转型(自动完成):父类 父类对象 = 子类实例 <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