美文网首页C#
面向对象(九)-密封类和密封方法 sealed 与抽象类 abs

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

作者: 元宇宙协会 | 来源:发表于2017-11-19 12:57 被阅读93次

    密封类与密封方法

    • 定义:
      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
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

        本文标题:面向对象(九)-密封类和密封方法 sealed 与抽象类 abs

        本文链接:https://www.haomeiwen.com/subject/gkwuvxtx.html