重载与重写的区别

重载:

1、重载是由静态类型确定的,在类加载的时候就能确定,属于静态分派。

2、重载就是同一个类中方法名相同,但是参数类型或者个数或顺序不同,可以理解为一个类中的多态。

重写:

1、重写是由动态类型确定的,在运行时确定,属于动态分派。

2、动态分派是由虚方法表实现的,虚方法表里面存储的是每个方法的实际入口地址,如果子类没有重写父类的某个方法,那么这个方法在父类和子类的虚方法表中的地址相同,如果重写了,那么子类的虚方法表指向的是重写后的地址。

3、重写是针对于子类继承父类,子类重写父类的方法,由动态绑定实现。

4、子类方法的访问权限不能低于父类方法的访问权限。

posted @ 2018-12-15 13:30  自带锋芒  阅读(1700)  评论(0编辑  收藏  举报