C#_9_抽象类_密封类

抽象类

  • C#允许把类和函数声明为 abstract
  • 抽象类不能实例化,抽象类可以包含普通函数和抽象函数,抽象函数就是只有函数定义没有函数体
  • 显然,抽象函数本身也是虚拟的Virtual(只有函数定义,没有函数体实现)
  • 类是一个模板,那么抽象类就是一个不完整的模板,我们不能使用不完整的模板去构造(初始化)对象。
abstract class Building
{
	public abstract decimal CalculateHeatingCost();
}
  • 当你知道一个父类被继承时,它的有个函数一定会被重写,那么这个函数就可以用抽象函数
  • 使用了抽象函数,那么类也需要写成抽象函数,用abstract class定义而不是class
  • 当继承了抽象类的时候必须去实现抽象方法

实例

namespace learn_c_1
{
    abstract class Bird
    {
        private int a;
        public abstract void Fly();

    }
}

namespace learn_c_1
{
    class Crow : Bird
    {
        public override void Fly()
        {
            Console.Write("Crow的方法");
        }
    }
}

在这里插入图片描述
当你写抽象类的子类时,可以点击蓝色字,自动补全。

密封类

  • C#允许把类和方法声明为 sealed。 对于类 ,这表示不能继承该类
  • 对于方法表示不能重写该方法。(重写的方法才可以被密封)
sealed FinalClass
{
// etc
}

什么时候使用 密封类和密封方法?
防止重写某些类导致代码混乱
商业原因

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值