什么是多态
多态的概念呢比较简单,就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
如果按照这个概念来定义的话,那么多态应该是一种运行期的状态。 为了实现运行期的多态,或者说是动态绑定,需要满足三个条件。
即有类继承或者接口实现、子类要重写父类的方法、父类的引用指向子类的对象。
public class Parent{ public void call(){ sout("im Parent"); } } public class Son extends Parent{// 1.有类继承或者接口实现 public void call(){// 2.子类要重写父类的方法 sout("im Son"); } } public class Daughter extends Parent{// 1.有类继承或者接口实现 public void call(){// 2.子类要重写父类的方法 sout("im Daughter"); } } public class Test{ public static void main(String[] args){ Parent p = new Son(); //3.父类的引用指向子类的对象 Parent p1 = new Daughter(); //3.父类的引用指向子类的对象 } }重载(静态多态) 就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,相互称之为重载函数或者方法。重写(动态多态) 就是Java的子类与父类中有两个名称,参数列表都相同的方法的情况。由于他们具有相同的方法签名,所以子类中的新方法将覆盖父类中原有的方法。