Override和Overload的含义去区别

重载:对象

方法名相同,参数列表不一样(方法个数、顺序、类型至少一个不一样),且与返回类型无关,能够有不一样的访问修饰符,能够抛出不一样的异常。是由静态类型肯定,类加载时肯定,属于静态分派。编译

 

 

 

重写:引用

将父类方法覆盖。方法名相同,参数,返回值,访问修饰符只能大于被重写的方法修饰符(public>protected>default>private),参数列表相同。方法被定义为 final 的方法不能被重写。子类不能抛出比父类更多更宽泛的异常,也能够不抛出异常。存在父类子类中,参数列表必须相同,返回值类型也必须形同。程序

若是须要调用父类原有的方法,能够使用 super 关键字,该关键字引用了当前类的父类。方法

重写是动态类型肯定,运行时肯定,属于动态分派。动态分派是由虚方法表实现的。虚方法表中存在各个方法的实际入口地址,若父类某个子方法没有重写,父类与子类的方法地址相同,若重写了,子类方法表的地址指向重写后的地址。异常

 

动态绑定:在程序运行过程当中,根据具体的实例对象才能具体肯定是哪一个方法参数

静态绑定:在编译过程当中就已经知道这个方法究竟是哪一个类中的方法实例

相关文章
相关标签/搜索