程序员开发实例大全宝库

网站首页 > 编程文章 正文

C#编程,使用抽象类计算圆形面积(源代码)

zazugpt 2024-09-07 01:51:24 编程文章 22 ℃ 0 评论

通过自定义的抽象类来计算圆形的面积。计算圆形面积时需要用到PI,在C#中使用math.pi常量字段来表示,它的值为3.14159265358979323846。

那么什么是抽象类?

如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅是作为其派生类的一个基类,这样的类就是抽象类。在抽象类中声明方法时,如果加上abstract关键字,则为抽象方法。

抽象类主要用来提供多个派生类可共享的基类的公共定义。它与非抽象类的主要区别有:1、抽象类不能直接实例化

2、抽象类中可以包含抽象成员,但是非抽象类中不可以包含抽象成员

3、抽象类不能被密封,在C#中声明抽象类时需要使用abstract关键字。声明抽象类时,除abstract关键字,Class关键字和类名外,其他的都是可选项。

程序界面:

程序代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class AbstractArea : Form
    {
        public AbstractArea()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 定义一个抽象类,表示圆形结构,抽象类中有一个抽象方法,这个抽象方法并没有实体代码
        /// </summary>
        public abstract class circle
        {            
            public double r;//定义圆形半径字段                  
            public double R//定义圆形半径属性(可读写)
            {
                get { return r; }
                set {  r=value; }
            }
            public abstract double Area();//声明计算面积的抽象方法,该方法需要在派生类中具体实现            
        }
        /// <summary>
        /// 声明派生类,继承基类中的成员和方法,并重写基类中的抽象方法实现计算圆形面积
        /// </summary>
        public class area : circle
        {
            public override double Area()//重写基类中的方法
            {
                return Math.PI * R * R;//计算面积
            }            
        }
        /// <summary>
        /// 通过按钮计算圆形面积
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {            
            area mj = new area();//实例化派生类
            mj.R = double.Parse(tex_r.Text.ToString());//为半径属性赋值
            tex_result.Text = mj.Area().ToString();//进行面积计算并转换为字符串
        }
    }
}

结语:

抽象类和接口的区别主要有以下几点:

1、抽象类的派生类只能继承一个基类,也就是只能直接继承一个抽象类,但可以继承任意多个接口。

2、抽象类中,可以定义成员的实现,但接口中不可以

3、抽象类中可以包含字段、构造函数、析构函数、静态成员或常量等,接口中不可以

4、抽象类中的成员可以是私有的,只要他们不是抽象的、受保护的内部成员,只能在应用程序的代码或派生类中访问,但接口中的成员必须是公共的。

喜欢的请关注、收藏、转发!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表