简介
抽象类和密封类的内容大致如下:
抽象类与抽象方法的使用
C#中使用“abstract”关键字来声明一个抽象类,并在该抽象类中声明一个抽象方法。
代码如下:
public abstract class School
{
/*
* 定义两个属性:
* ID:学号
* NAME:姓名
*/
private string id;
private string name;
public string ID
{
get { return id; }
set { id = value; }
}
public string NAME
{
get { return name; }
set { name = value; }
}
/*
* 定义一个抽象方法
* 用来打印属性信息
*/
public abstract void Dispaly();
}
定义派生类,继承School类,重写School抽象类中的抽象方法。
代码如下
/*
* MyClass类继承School类
*/
public class MyClass : School
{
//继承School中输出信息的方法
public override void Dispaly()
{
Console.WriteLine("学号:{0},姓名:{1}",ID,NAME);
}
}
在Main方法中,实例化派生类对象,再通过派生类对象实例化抽象类。
代码如下:
static void Main(string[] args)
{
//实例化派生类
MyClass objMyClass1 = new MyClass();
//使用派生类对象实例化抽象类
School objSchool1 = objMyClass1;
//使用抽象类对象访问抽象类中的属性
objSchool1.ID = "S001";
objSchool1.NAME = "学生1号";
//使用抽象类对象调用派生类的方法
objSchool1.Dispaly();
Console.ReadKey();
}
密封类与密封方法的使用
创建一个基类并定义一个虚方法,虚方法用“virtual”关键字来定义。
代码如下:
public class AllClass
{
/*
* 基类:AllClass
* 定义一个虚方法,用来显示信息。
*/
public virtual void Dispaly()
{
}
}
C#中使用“sealed”关键字声明密封类,对基类的虚方法进行重写并实现。
代码如下:
public sealed class MyClass1:AllClass
{
/*
* 密封类:MyClass1,继承AllClass
* 1.定义两个属性;
* 2.密封并重写基类的虚方法
*/
private string id;
private string name;
public string ID
{
get { return id; }
set { id = value; }
}
public string NAME
{
get { return name; }
set { name = value; }
}
public sealed override void Dispaly()
{
base.Dispaly();
Console.WriteLine("学号:{0};姓名:{1}",ID,NAME);
}
}
在Main方法中实例化密封类对象,实现调用密封类中的方法。
static void Main(string[] args)
{
MyClass1 objMyClass1 = new MyClass1(); //实例化密封类对象
objMyClass1.ID = "S001"; //为密封类中的属性赋值
objMyClass1.NAME = "学生1号";
objMyClass1.Dispaly(); //调用密封类中的方法
Console.ReadKey();
}