函数的重载

Posted on 2004-09-23 22:43  鲁旭  阅读(894)  评论(0编辑  收藏  举报
    public class MainTest
    
{
        
public static void Main()
        
{
            BaseMyClass baseMy
=new BaseMyClass();
            IntMyClass IntMy
=new IntMyClass();
            BaseMyClass IntMy2
=new IntMyClass();
            
            baseMy.ShowMessage1();
            baseMy.ShowMessage2();

            IntMy.ShowMessage1();
            IntMy.ShowMessage2();

            IntMy2.ShowMessage1();
            IntMy2.ShowMessage2();

            Console.ReadLine();

        }

    }

    
public class BaseMyClass
    
{
        
public void ShowMessage1()
        
{
            Console.WriteLine(
"Base1");
        }

        
public virtual void ShowMessage2()
        
{
            Console.WriteLine(
"Base2");
        }


    }

    
    
public class IntMyClass:BaseMyClass
    
{
        
public new void ShowMessage1()
        
{
            Console.WriteLine(
"IntMy1");
        }

        
public override void ShowMessage2()
        
{
            Console.WriteLine(
"IntMy2");
        }


    }
以上代码执行的结果为:
Base1
Base2
IntMy1
IntMy2
Base1
IntMy2

如果把IntMyClass中函数ShowMessage1的new去掉后执行的结果
Base1
Base2
IntMy1
IntMy2
Base1
IntMy2
没有区别

如果将IntMyClass中函数ShowMessage2的override去掉执行的结果为
Base1
Base2
IntMy1
IntMy2
Base1
Base2
:)


Copyright © 2024 鲁旭
Powered by .NET 8.0 on Kubernetes