覆盖
定义:发生在继承关系里面,通过vitrual和override进行实现,函数名和参数相等。
代码如下:
讯享网运行后得到的结果是:

vitrual 函数定义在父类里面,override定义在子类里面,(注意函数名和参数要一样),在调用子类的函数时,如果没有override函数则运行父类的函数,如果有则运行子类的函数。
这个的作用很大,比如在设计敌人的时候,我们希望大部分敌人的一些函数相同,但是有些特殊的敌人需要修改,我们就可以进行这个函数的修改,提高了代码的可维护性。
重载
定义:任何关系里面都可以发生,只要函数名一致,参数不一致。

讯享网
这个就是重载,也就是在多个同名函数,但是参数不一致,这个可以发生。
结果:
Java基础 方法重载和覆盖的区别
运用的地方同样很多,这里就不赘述了。
this和base
this.变量名,和base.变量名,用法就是这样,大致讲解,this.变量名讲的是所在类的变量,base.变量名讲的是父类的变量,主要是为了区别如果子类和父类定义的变量名相等了,用于区别,这里就不附上代码演示了,自己尝试一下就理解了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/7724.html