重载和重写的区别

1. 重载(overload):简单的说就是参数列表不同,个数不同/个数相同但类型不同/个数,类型都不相同.也可以是类型一样但顺序不一样.

class Program
    {
        static void Main(string[] args) { int a = MyMath.Add(12, 36); Console.WriteLine("整数相加结果:{0}",a); float b = MyMath.Add(12, 36.36f); Console.WriteLine("浮点数相加结果:{0}",b); float ff = MyMath.Add(36.36f, 23); Console.WriteLine("浮点数和整数相加结果是:{0}",ff); double d = MyMath.Add(42.52, 23); Console.WriteLine("双精浮点数和整数相加结果是:{0}",d); } }
View Code
class MyMath
    {

        public static int Add(int a, int b)
        {
            return a + b;
        }

        public static float Add(float a, float f)
        {
            return a + f;
        }

        public static double Add(double a, double f)
        {
            return a + f;
        }

        public static decimal Add(decimal a, decimal f)
        {
            return a + f;
        }

        //参数的类型相同,但顺序不同,构成重载。
        public static float Add(int a, float f)
        {
            return a + f;
        }

        public static float Add(float f, int a)
        {
            return a + f;
        }
       //参数的类型相同,个数不同,,构成重载
       public static int Add(int a)
        {
            return a;
        }

    }       
View Code

 2.重写(override):重写是用override来修饰方法,属性,索引器或事件,基类中函数的重写,为了实现多态

猜你喜欢

转载自www.cnblogs.com/szmh9192/p/8892678.html