Java重载和重写的区别?

  • 重载是一个类有多个方法,每个方法的名相同,参数表不同,可以通过传入不同的参数表,调用不同的方法,体现了类的多态性
  •  
  • 重写是子类继承父类,子类可以使用所有的父类方法,如果想要修改某个父类方法,可以直接在子类中重新定义这个方法,子类调用时,就会调用子类所定义的方法,这就称为重写
  •  
  • 重载是由静态类型确定的,属于静态分派,加载的时候即确定;重写是由动态类型确定的,运行时被确定,属于动态分派,动态方法由虚方法表实现,虚方法表存储个个方法的实际入口地址,当子类重写父类方法时,这个方法在虚方法表中指向的实际地址就是子类重写父类方法的地址值,如果不被重写,指向的是父类方法的地址
  •  
  • 子类重写父类方法,将会覆盖原有的方法,如需要父类中的方法可以使用super关键字,super().父类方法名

猜你喜欢

转载自blog.csdn.net/qq_39820860/article/details/85230604
今日推荐