多态通常有两种实现方法:
- 子类继承父类(extends)
- 类实现接口(implements)
多态的实现机制:
重载(overload)和重写(override)
-
如果一个子类继承了一个父类,子类中拥有和父类相同方法名称,返回值,参数类型的话,就是重写,会执行子类中的方法。
-
如果一个类中定义了多个同名方法,他们有不同的参数类型或者参数数量,那就叫重载(注:返回值类型可以不同)
多态在什么地方用?
可以用在方法的参数中和方法的返回类型中。.
-
编译时多态(设计时多态):方法重载。
-
运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态)
-
运行时多态存在的三个必要条件:
-
要有继承(包括接口的实现);
-
要有重写;
-
父类引用指向子类对象。