函数的重载

Posted on 2004-09-23 22:43  鲁旭  阅读(899)  评论(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
:)


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3