面向对象(九)-密封类和密封方法 sealed 与抽象类 abstract


密封类与密封方法

  • 定义:
    C#允许把类和方法声明为sealed。对于类,这表示不能被继承(任何类不能继承自这个类)。对于方法表示不能被重写。
    注意点 :
    sealed只能写在重写的方法上,写上以后,表示该方法不能被该类的子类重写了。

  • 案例
    • 错误的写法
    • 正确的写法
sealed class baseClass{

}

// 错误的写法
class DerivedClass : baseClass { // 任何的类无法继承baseClass

}

class baseClass{
    public virtual void function(){};
}

class DerivedClass : baseClass{
    public sealed override void function(){}; //  可以将重写的方法声明为密封方法,表示该方法不能被重写。
}

抽象类 abstract

  • 关键字abstract
  • 作用:
可以在父类中定义一个函数或者字段,但是不去实现。
所有继承自该类的子类都必须实现该类中的所有抽象函数,抽象字段。
  • 注意点
不可以用抽象类来进行实例化,但可以用抽象类来声明。
但凡某一个类中有一个抽象方法,那么该类也就必须定义为抽象类。
  • 示例
abstract class Enemy
    {
        abstract public void attack();
    }

    class Boss : Enemy
    {
        public override void attack()
        {
            Console.WriteLine("我打人挺疼的");
        }
    }
 abstract class Anima
    {     
        public abstract int Aame
        {
            set;
            get;    
        }
}

class Cat : Anima
{
        private int _aame;
        public override int Aame {
            //get => throw new NotImplementedException();
            //set => throw new NotImplementedException();
            set
            {
               _aame = value;
            }
            get
            {
                return _aame;
            }
}

引用代码出处

作者:silence_k
链接:http://www.jianshu.com/p/ce1252ddf7c6
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容