22.密封方法

  1. 22.面向对象-多态-密封方法
    1. 22.1 知识点
      1. 知识回顾
      2. 密封方法的基本概念
      3. 密封方法的实例
        1. class语句块外namespace语句块内
      4. 总结
    2. 22.2 知识点代码

22.面向对象-多态-密封方法


22.1 知识点

知识回顾

  • 密封类
    • sealed 修饰的类
    • 让类不再能被继承,类似于“结扎”

密封方法的基本概念

  • 用密封关键字 sealed 修饰的重写函数
  • 密封方法的作用:让虚方法或者抽象方法之后不能再被重写
  • 密封方法的特点:和 override 一起出现

密封方法的实例

class语句块外namespace语句块内

// 抽象动物类
abstract class Animal
{
    public string name;
    public abstract void Eat();

    public virtual void Speak()
    {
        Console.WriteLine("叫");
    }
}

// 人类
class Person : Animal
{
    // 密封吃方法,使吃方法不能被重写
    public sealed override void Eat()
    {

    }

    public override void Speak()
    {

    }
}

// 白人类
class WhitePerson : Person
{
    // 报错,吃方法被Person类中密封,不能被重写
    // public override void Eat()
    // {
    //     base.Eat();
    // }

    // 密封说方法,使说方法不能被重写
    public sealed override void Speak()
    {
        base.Speak();
    }
}

总结

  • 密封方法的概念:可以让虚方法和抽象方法不能再被子类重写
  • 密封方法的特点:一定是和 override 一起出现

22.2 知识点代码

using System;

namespace Lesson20_多态_密封方法
{
    #region 知识回顾
    //密封类
    //用sealed修饰的类
    //让类不再能被继承  “结扎”
    #endregion

    #region 知识点一 密封方法的基本概念
    //用密封关键字sealed 修饰的重写函数
    //密封方法的作用:让虚方法或者抽象方法之后不能再被重写
    //密封方法的特点:和override一起出现
    #endregion

    //class语句块外 namespace语句块内

    #region 知识点二 密封方法的实例

    //抽象动物类
    abstract class Animal
    {
        public string name;
        public abstract void Eat();

        public virtual void Speak()
        {
            Console.WriteLine("叫");
        }
    }

    //人类
    class Person:Animal
    {
        //密封吃方法 使吃方法不能被重写
        public sealed override void Eat()
        {
            
        }

        public override void Speak()
        {
            
        }
    }

    //白人类
    class WhitePerson:Person
    {
        //报错 吃方法被Person类中密封 不能被重写
        //public override void Eat()
        //{
        //    base.Eat();
        //}

        //密封说方法 使说方法不能被重写
        public sealed override void Speak()
        {
            base.Speak();
        }
    }

    #endregion
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("密封方法");
        }
    }

    //总结
    //密封方法的概念:可以让虚方法和抽象方法不能再被子类重写
    //密封方法的特点:一定是和override一起出现
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏