抽象类
时间:2010-10-08 来源:草珊瑚
抽象类>什么是抽象类
抽象类的声明中包含abstract关键字。只要有一个方法具有abstract修饰即声明为抽象方法,那么这个类就是抽象类。
抽象类,就是提供类的定义,不提供类的具体实现细节(可实现部分细节,但不全实现)。抽象类的实现交由派生类来完成。
抽象类>声明抽象类
代码 using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
/// <summary>
/// 购买书籍的抽象类
/// </summary>
public abstract class BuyBookOperate
{
public abstract void BuyBook();
//书店
public abstract string BookShop
{ get; set; }
//书名
public abstract string BookName
{ get; set; }
//支付行为
public void PayMoney()
{
Console.WriteLine("支付款项正在进行中......");
}
//总金额
private int _totalmoney;
public int TotalMoney
{
get
{
return _totalmoney;
}
set
{
_totalmoney = value;
if (_totalmoney > 100)
{
Console.WriteLine("您购买的书籍价格超过了100块钱");
}
}
}
}
}
抽象类>实现抽象类
代码 using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
/// <summary>
/// 抽象类的实现。
/// </summary>
public class ConcreteBuyBook : BuyBookOperate
{
//实现抽象方法
public override void BuyBook()
{
BookShop = "新华书店";
BookName = "C#的书籍";
TotalMoney = 101;
PayMoney();
}
private string _bookshop;
//实现抽象属性
public override string BookShop
{
get
{
return _bookshop;
}
set
{
_bookshop = value;
}
}
private string _bookname;
//实现抽象属性。
public override string BookName
{
get
{
return _bookname;
}
set
{
_bookname = value;
}
}
}
}
运行它
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ConcreteBuyBook cb1 = new ConcreteBuyBook();
Console.WriteLine(cb1.ToString() + "类的输出结果为:");
Buybook(cb1);
}
/// <summary>
/// 买书的动作,传递抽象类的实现.
/// </summary>
/// <param name="bop"></param>
static void Buybook(BuyBookOperate bop)
{
//调用在抽象类中定义的BuyBook方法
bop.BuyBook();
}
}
}
相关阅读 更多 +