大家可以区分清楚方法的重载和方法的重写吗?什么是方法呢?什么时候使用重载呢?什么时候使用重写呢?
方法是在类下写的,方法下的代码只保留最关键的代码,方法的语法为:
[访问修饰符] static 返回值 方法名([参数列表]) //static 静态方法 { 方法体 }如:
public static void show() { Console.WriteLine("今天天气不错!"); }此方法是没有参数(括号里没东西),没有返回值(void)的。
有了方法之后,写代码就变得简单了。
方法的重载是指:方法名相同,但是参数的个数和类型不同。方法的重载和返回值无关,和参数的个数和类型有关。 上图显示的是MessageBox这个方法一共有21个重载,具体使用哪个就看具体的要求了!
重写方法发生在多态中,此时子类的方法可以和父类的方法名重名,但是会出现一条绿线,这个时候应该怎么做呢?
可以在父类的方法的修饰符后面加virtual,变成虚方法,在子类方法的修饰符后面加override,重写父类方法。需要注意的是:子类调用了父类的方法,但是把父类的方法进行了重写,更换了方法里面的内容,都不能再加static,此外,虚方法不能与private一起使用。
也可以在子类的修饰符后面加new,隐藏父类的方法。需要注意的是:无论是否加new,都不影响使用。
了解方法的重载和重写,重载我们经常会遇到,相对来说也是好理解的,重写一般在多态中,我们需要了解什么是多态,理解方法的重写,多做几个练习。
