【问题标题】:Is it possible to override method of sealed class?是否可以覆盖密封类的方法?
【发布时间】:2014-06-12 13:05:51
【问题描述】:

在WinRT(C#,XAML)中,ScrollViewer是一个密封类,我不能扩展它,但是我需要重写一些方法(例如:ScrollToHorizontalOffset)。

是否可以覆盖密封类的方法?

【问题讨论】:

    标签: c# xaml windows-runtime


    【解决方案1】:

    不 - 为了覆盖一个方法,你必须从它派生,当类被密封时你不能这样做。

    基本上,您需要重新审视您的设计以避免此要求...

    【讨论】:

      【解决方案2】:

      你不能从一个密封的类继承,所以没有继承,没有覆盖。

      见:override C#

      需要覆盖修饰符来扩展或修改摘要或 继承方法、属性、索引器的虚拟实现, 或事件。

      见:sealed C#

      当应用于一个类时,sealed 修饰符会阻止其他类 从继承它。

      【讨论】:

        【解决方案3】:

        正如单词"sealed" 本身所表明的那样,它受到保护,不会被继承或覆盖

        所以,没有继承意味着没有覆盖。

        请找到this链接以详细了解密封类的更多详细信息。

        【讨论】:

          【解决方案4】:

          密封本身意味着类不能被继承,那些不能被继承的类意味着不能在派生类中访问该类的任何属性。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-24
            • 1970-01-01
            • 1970-01-01
            • 2014-01-10
            • 1970-01-01
            相关资源
            最近更新 更多