在使用面向对象编程中怎样区分重写和重载?
给你平时自己理解的思路,看看是否对你有帮助,如果没有就当我胡说八道。
重写:重写重写就是要重新去写(实现),一个类中不可能两个定义一样的方法,所以,重新就是子类和父类的关系。重写就是子类对父类定义的方法重新实现一次;
重载:重载字面意思多次的意思,也就是同一个方法实现多个不同的逻辑,那么在同一个类中可以实现,其实现的原理是,方法名相同,参数的个数或者类型不同即可
重写是 子类重写父类的方法;重载是方法名称相同,返回类型 或参数类型不同,叫做重载;可以去百度一下
定义是这样可是上代码就蒙圈了
@悲伤掩饰微笑: 是不是重写 你看看类是否有继承父类 就可以了
@IT小伙儿: 在C#中继承的关键是?
在Java中我知道在C#中我就不是和清楚了
重写根据关键字区分,以C#为例,判断是否重写的时候,子类要有关键字override声明,父类方法必须声明为virtual或者是abstract。(网上去找个C#的栗子看一遍就懂了,看不懂就多看几遍)
重载就简单了,一个方法,多个参数,即为重载,如:
public int Fn(int a) { //TODO }
public int Fn(int a,int b) { //TODO }
上面fn就是一个具备重载的方法,使用的时候你可以传个a,它就进第一个方法,传a和b两个参数,它就进下面那个方法。
为什么总是喜欢拿2个不相干的关键字.放到一起对比.有什么不同.
他们明明一点相同都没有好吗?
而且学习的时候.你要给每个关键定用文字描述他的定义.这个东西在书上就有.
你吧2个关键字的定义放到一起对比一下.而不是吧2个关键字放到一起对比..
重载,就是一个类里,多个重名的方法(签名不一样)
重写,就是重写 ,有个关键字 override
这俩没什么可以比较的