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

C#实现面向对象多态性的三种方式

2013-05-30 08:54 351 查看
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication2

{

//实现面向对象多态性的有三种方式

//虚方法

//抽象类

//接口

//抽象类:是对一系列类的抽象

abstract class Human

{

string name;

public string Name

{

get { return name; }

set { name = value; }

}

//5.属性也可以定义为抽象的,属性本身也是方法

public abstract string num { get; set; }

public void Say()

{

Console.WriteLine("human say...0");

}

//public virtual void Walk()

//{

//}

//2.抽象方法不能有方法体

//3.抽象方法只能写在抽象类里

public abstract void Walk();

public abstract void Work();

}

//4.非抽象类继承抽象类时,抽象类中的所有抽象方法必须实现

class Student:Human

{

string stunum = "";

DateTime dt = DateTime.Now;

public override string num

{

get

{

return stunum;

}

set

{

stunum = value;

}

}

public override void Walk()

{

Console.WriteLine("student walk..");

}

public override void Work()

{

Console.WriteLine("{0}学生在学习",dt);

}

}

class Teacher : Human

{

DateTime dt = DateTime.Now;

public override void Work()

{

Console.WriteLine("{0}老师在教书",dt);

}

string tnum = "";

public override string num

{

get

{

return tnum;

}

set

{

tnum = value;

}

}

public override void Walk()

{

Console.WriteLine("teacher walk`````");

}

}

class Program

{

static void Main(string[] args)

{

//1.抽象类不能直接实例化

Human h = new Student();

h.Walk();

h = new Teacher();

h.Walk();

Human a = new Student();

a.Work();

a = new Teacher();

a.Work();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: