重写是子类的方法
覆盖
父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法//====================================================================================
在C#中我不敢妄言。因为我是用java的,在这个方面二者相差不多,我就说说java吧。 重写一般是指父类和子类之间,子类重写了父类的一个方法,当然方法名是一样的,而且不能改变父类方法的返回值,比如说父类是返回String,子类重写了这个方法,想返回一个int,那是不行的,也得返回String。 重载是一个类里面,写了多了同名的方法,各个方法的返回值类型可以不一样。要注意区分重载方法可以通过参数列表的个数,类型和顺序。但是不推荐用顺序来进行重载,这会让代码可读性极差。 其他没啥了。面试学生的时候,有时候会问这个问题,有些学生连这都不知道,不知道大学学啥了。重写的时候,子类的返回值类型必须是小于等于父类的返回值类型吧!!!所以是可以改变的吧,只不过有条件的改变。。。子类的修饰符大于等于父类的修饰符,子类抛出的异常小于等于父类的异常。。。
根本区别: 重写(重构)很直观啊,子类覆盖了父类的同名同参同返回值的方法,用子类调用的只会是重写的方法 重载,同名而已。==================================================================================
1、重载: 方法名相同,参数列表不同 2、重写: 也叫覆盖,指在子类中定义一个与父类中方法同名同参数列表的方法。因为子类会继承父类的方法,而重写就是将从父类继承过来的方法重新定义一次,重新填写方法中的代码。