随笔 - 2146  文章 - 97 评论 - 11767 trackbacks - 253


继承:
using System;

class Parent
{
    public void Msg() { Console.WriteLine("Parent"); }
}

class Child : Parent { }

class Program
{
    static void Main()
    {
        Parent ObjParent = new Parent();
        Child ObjChild = new Child();

        ObjParent.Msg(); //Parent
        ObjChild.Msg();  //Parent

        Console.ReadKey();
    }
}


覆盖:
using System;

class Parent
{
    public virtual void Msg() { Console.WriteLine("Parent"); }
}

class Child : Parent 
{
    public override void Msg() { Console.WriteLine("Child"); }
}

class Program
{
    static void Main()
    {
        Parent ObjParent = new Parent();
        Child ObjChild = new Child();

        ObjParent.Msg(); //Parent
        ObjChild.Msg();  //Child

        Console.ReadKey();
    }
}


多态:
using System;

class Parent
{
    public virtual void Msg() { Console.WriteLine("Parent"); }
}

class Child1 : Parent 
{
    public override void Msg() { Console.WriteLine("Child_1"); }
}

class Child2 : Parent
{
    public override void Msg() { Console.WriteLine("Child_2"); }
}

class Program
{
    static void Main()
    {
        Parent Obj1 = new Child1();
        Parent Obj2 = new Child2();

        Obj1.Msg(); //Child_1
        Obj2.Msg(); //Child_2

        Console.ReadKey();
    }
}


隐藏:
using System;

class Parent
{
    public void Msg() { Console.WriteLine("Parent"); }
}

/* 有意隐藏应使用 new 关键字 */
class Child1 : Parent 
{
    new public void Msg() { Console.WriteLine("Child_1"); }
}

/* 无意隐藏会有提示, 但可用 */
class Child2 : Parent
{
    public void Msg() { Console.WriteLine("Child_2"); }
}

class Program
{
    static void Main()
    {
        Parent Obj1 = new Child1();
        Parent Obj2 = new Child2();
        Child1 Obj3 = new Child1();
        Child2 Obj4 = new Child2();

        Obj1.Msg(); //Parent
        Obj2.Msg(); //Parent
        Obj3.Msg(); //Child_1
        Obj4.Msg(); //Child_2

        Console.ReadKey();
    }
}


posted on 2009-01-02 16:45  万一  阅读(...)  评论(...编辑  收藏