4个回答
展开全部
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'.
以上回答你满意么?
密封类在声明中使用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'.
以上回答你满意么?
追问
我的意思是我建了一个类,但其他类无法继承他,我想要被继承
更多追问追答
追问
我的意思是我建了一个类,但其他类无法继承他,我想要被继承
追答
把你的类贴出来看看啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般不会的,除非早类前加了sealed 这个关键字。这个关键就是禁止其他类继承它
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把类的权限修饰符提高。
追问
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TeacherPlat.App_Code
{
public class PageBaseW
{
}
}
这个为什么不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询