您的位置:首页 > 编程语言 > C#

C# 语法练习(10): 类[二] - 继承、覆盖、多态、隐藏

2009-01-02 16:45 513 查看
继承:
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: