C#抽象类和抽象函数

抽象类和抽象函数

所谓抽象就是没有具体只有其意。在继承中,如果想要定义一群派生类共有的共性却没有具体实现的“方法”时,可以用抽象类实现了。例如语文老师、数学老师、英语老师等都是老师,老师都有教学的任务。所以教学就是共性。因为教学不确定教学的内容和时间。所以教学的内容、时间都不同都需要针对不同的的派生类来定义。

抽象类和抽象方法的语法如下,加上abstract修饰符即可。抽象方法没有函数体只有函数签名。抽象方法必须在抽象类中,否则会出现错误。

public abstract class teacher         //抽象类,加abstract
{
	public abstract void Teaching();  //抽象方法Teaching,加abstract
}

一旦继承了一个抽象类,则一定要将其中的所有的抽象方法全部的重写实现。

namespace test
{
    public abstract class Teacher     //抽象类
    {
        private int number;
        public abstract int Number    //抽象属性
        {
            set;
            get;
        }
        public abstract void Teaching();  //只要一个类中有关抽象函数则一定要在抽象类中
    }

    class MathTeacher:Teacher
    {
        public override void Teaching() //重写的抽象方法
        {
            Console.WriteLine("我是数学老师,我教学数学");
        }
        public override int Number   //重写的抽象属性
        {
            get { return Number; }
            set
            {
                if (value <= 100)
                    Number = value;
                else
                    Number = 0;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            MathTeacher myMathTeacher = new MathTeacher();
            myMathTeacher.Teaching();

            Console.Read();
        }
    }
}
/*
输出的结果为:
我是数学老师,我教学数学
*/

属性也是一种特殊的方法。所以抽象类、虚方法等都对属性有效。

发布了51 篇原创文章 · 获赞 0 · 访问量 888

猜你喜欢

转载自blog.csdn.net/weixin_40786497/article/details/103172354