java和python 重写和重载

java和python 都有重写 overwrite

 

在Java里,子类继承父类,需要修改父类的某个函数,可以重写这个函数,然后用@overwrite进行标记

而python里也是一样,可以直接重写函数

 

而重载完全不一样!!这个只是跟重写名称接近,重载只在java里有,python里没有。重载,是指一个函数写了两次!!

这也是之前我一致混淆的,为什么一个函数能有好几种参数可以传,看上去就像好几个函数。其实也确实就是好几个函数。

 

为什么python里没有?因为python本身就支持不定长参数。

函数重载主要是为了解决两个问题。

1。可变参数类型。

2。可变参数个数。

另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,

 

 

可以参考知乎讨论

https://www.zhihu.com/question/20053359

 

posted @ 2022-01-21 09:56  yjy888  阅读(131)  评论(0编辑  收藏  举报