如何防止类'a'被另一个类继承?

时间:2010-11-04 11:59:56

标签: c# java vb.net programming-languages

我有一个名为fdetails的类,我不希望任何其他类继承此类。

我可以将其设置为不被其他类继承。我想用以下3种语言完成这项工作:

  • 爪哇
  • VB.NET 3.5
  • C#3.5

7 个答案:

答案 0 :(得分:36)

java: final  
vb: NotInheritable (NonOverrideable for properties)
c#: sealed

答案 1 :(得分:8)

在Java中使用final关键字:

public final class fdetails{

}

在C#中使用密封关键字:

public sealed class fdetails{

}

在VB.net中使用NotInheritable关键字:

public notinheritable class fdetails

end class

答案 2 :(得分:4)

在C#中,您使用sealed关键字以防止继承类。

在VB.NET中,您使用NotInheritable关键字。

在Java中,您使用关键字final

答案 3 :(得分:3)

在JAVA中 - 使用final关键字:

public final class FDetails

在C#中 - 密封关键字:

sealed class FDetails

答案 4 :(得分:1)

为了防止继承C#中的类,使用关键字sealed。因此,密封类可能不会作为任何其他类的基类。很明显,密封类不能是抽象类。代码如下......

//C# Example
sealed class ClassA
{
    public int x;
    public int y;
}

没有类可以从上面定义的ClassA继承。可以创建ClassA的实例,然后可以访问其成员,但是下面的代码不可能......

class DerivedClass : ClassA { } // Error

在Jave和VB.net中相同:

java: final  
vb: NotInheritable (NonOverrideable for properties)

答案 5 :(得分:0)

或者选择https://stackoverflow.com/a/4096427/5292885,也可以使用私有构造函数创建基类以避免继承(在C#中,您会得到类似该类由于其保护级别而无法访问这样的错误,以防万一如果您引用基类)

答案 6 :(得分:0)

对于 C#,它是“密封”关键字。

对于 Java,它是“final”关键字。