using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 抽象类实现求圆的面积
{
public abstract class myClass
{
private int r = 0;
/// <summary>
/// 圆半径
/// </summary>
public int R
{
get { return r; }
set { r = value; }
}
/// <summary>
/// 抽象方法,用来计算圆面积
/// </summary>
public abstract double Area();
}
public class DriveClass : myClass//继承抽象类
{
/// <summary>
/// 重写抽象类中计算圆面积的方法
/// </summary>
public override double Area()
{
return Math.PI * R * R;
}
}
class Program
{
static void Main(string[] args)
{
DriveClass driveclass = new DriveClass();//实例化派生类
myClass myclass = driveclass;//使用派生类对象实例化抽象类
myclass.R = 3;//使用抽象类对象访问抽象类中的半径属性
Console.WriteLine("圆面积为:" + myclass.Area());//使用抽象类对象调用派生类中的的方法
Console.ReadKey();
}
}
}
有人评论说上面的代码是我复制粘贴过来的,确实是。我是因为这上面有注释适合初学者学习。也很好理解。这上面的代码和我写的也差不多,那好吧,有些人不希望需要这样的代码,我就把自己写的发出来吧,哈哈神奇
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _005
{
public abstract class MyClass
{
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
public abstract double Area();
}
public class cx : MyClass
{
public override double Area()
{
return Math.PI * MyProperty * MyProperty;
}
}
class Program
{
static void Main(string[] args)
{
//MyClass c = new cx();
cx c = new cx();
c.MyProperty = 10;
double d = c.Area();
Console.WriteLine(d);
Console.ReadKey();
}
}
}