C#创建类无法被继承 5

我在C#里面创建一个类,但其他类继承不了... 我在C#里面创建一个类,但其他类继承不了 展开
 我来答
沦陷YW53
2014-07-29 · 超过56用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:105万
展开全部
C#提出了一个密封类(sealed class)的概念,帮助开发人员来解决这一问题。

密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。

sealed(C# 参考)

sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与 override(C# 参考) [ http://msdn2.microsoft.com/zh-cn/library/ebca9ah3(VS.80).aspx ] 一起使用。

在类声明中使用 sealed 修饰符可防止继承此类,例如:

sealed class SealedClass
{
public int x;
public int y;
}
将密封类用作基类或将 abstract [ http://msdn2.microsoft.com/zh-cn/library/sf985hc5(VS.80).aspx ] 修饰符与密封类一起使用是错误的。

结构是隐式密封的;因此它们不能被继承。

有关继承的更多信息,请参见继承(C# 编程指南) [ http://msdn2.microsoft.com/zh-cn/library/ms173149(VS.80).aspx ] 。

示例

// cs_sealed_keyword.cs
using System;
sealed class SealedClass
{
public int x;
public int y;
}

class MainClass
{
static void Main()
{
SealedClass sc = new SealedClass();
sc.x = 110;
sc.y = 150;
Console.WriteLine("x = {0}, y = {1}", sc.x, sc.y);
}
}
输出

x = 110, y = 150
在前面的示例中,如果试图通过使用下面的语句从密封类继承:

class MyDerivedC: MyClass {} // Error

将收到错误信息:

'MyDerivedC' cannot inherit from sealed class 'MyClass'.
以上回答你满意么?
追问
我的意思是我建了一个类,但其他类无法继承他,我想要被继承
玩转数据处理
2014-07-29 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
更多追问追答
追问
我的意思是我建了一个类,但其他类无法继承他,我想要被继承
追答
把你的类贴出来看看啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
597182985yqgj
2014-07-29 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:84.7万
展开全部
一般不会的,除非早类前加了sealed 这个关键字。这个关键就是禁止其他类继承它
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冬天之雪_
2014-07-29 · TA获得超过424个赞
知道小有建树答主
回答量:1304
采纳率:100%
帮助的人:599万
展开全部
把类的权限修饰符提高。
追问
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TeacherPlat.App_Code
{
public class PageBaseW
{
}
}
这个为什么不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式