C#(十九)之抽象类abstract

53 篇文章 1 订阅
22 篇文章 0 订阅

C#中的抽象类(abstract)。

1:抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法

2:抽象类不能被实例化

3:抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类

4:具体派生类必须覆盖基类的抽象方法

5:抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们。

6:抽象类中的非抽象方法,如果该方法是静态,直接通过类调用就好,如果不是静态的,则需要通过继承这个抽象类的子类实例化的对象来调用。

7:抽象类中包含属性、虚方法、普通方法、抽象方法、构造方法、普通成员变量、静态成员变量

8:抽象类的成员可以使用公有或其他修饰符,接口中成员是隐式公有的,不需要修饰;

9:抽象类是概念的抽象,接口注重行为,抽象类不支持多重继承,而一个类可以实现多个接口。

下边是实例:

using System;

namespace @abstract
{
    class Program
    {
        static void Main(string[] args)
        {
            // 实例化对象
            son son = new son();
            // 调用重写后的抽象方法
            son.getClass();
            // 调用抽象类中非抽象方法
            son.GetResult();
            // 调用抽象类中的静态非抽象方法
            AbsClass.GetUser();

            Console.ReadLine();
        }
    }

    /// <summary>
    /// 子类,继承抽象类
    /// </summary>
    public class son : AbsClass
    {
        public override void getClass()
        {
            Console.WriteLine("我继承了AbsClass抽象类,并实现了其中的方法");
        }
    }

    /// <summary>
    /// 声明一个抽象类
    /// </summary>
    public abstract class AbsClass
    {
        /// <summary>
        /// 非抽象的字段
        /// </summary>
        public int number;
        /// <summary>
        /// 构造函数
        /// </summary>
        public AbsClass()
        {
            number = 10;
        }
        /// <summary>
        /// 非抽象方法
        /// </summary>
        public void GetResult()
        {
            Console.WriteLine("非抽象方法:非抽象变量值为"+ number);
        }
        /// <summary>
        /// 非抽象静态方法
        /// </summary>
        public static void GetUser()
        {
            Console.WriteLine("我是非抽象静态方法");
        }
        /// <summary>
        /// 抽象方法
        /// </summary>
        public abstract void getClass();
    }
}

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

欢迎访问小程序:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值