Csharp/CSharp Tutorial/Class/sealed — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 15:16, 26 мая 2010
internal sealed class
<source lang="csharp">using System; using System.Collections.Generic; using System.Linq; using System.Text;
public abstract class MyBase { } internal class MyClass : MyBase { } public interface IMyBaseInterface { } internal interface IMyBaseInterface2 { } internal interface IMyInterface : IMyBaseInterface, IMyBaseInterface2 { } internal sealed class MyComplexClass : MyClass, IMyInterface { } class Program { static void Main(string[] args) { MyComplexClass myObj = new MyComplexClass(); Console.WriteLine(myObj.ToString()); } }</source>
Sealed Classes
<source lang="csharp">sealed class MyClass {
MyClass() {}
}</source>
Sealed methods
<source lang="csharp">using System; public class BaseClass {
public string lastName; public string firstName; public BaseClass(string lastName, string firstName) { this.lastName = lastName; this.firstName = firstName; } public virtual void Accelerate() { Console.WriteLine("In BaseClass Accelerate() method"); Console.WriteLine(firstName + " accelerating"); }
} public class DerivedClass : BaseClass {
public DerivedClass(string lastName, string firstName) : base(lastName, firstName) { } sealed public override void Accelerate() { Console.WriteLine("In DerivedClass Accelerate() method"); Console.WriteLine(firstName + " accelerating"); }
} class MainClass {
public static void Main() { DerivedClass myDerivedClass = new DerivedClass("A", "M"); Console.WriteLine("Calling myDerivedClass.Accelerate()"); myDerivedClass.Accelerate(); }
}</source>
Calling myDerivedClass.Accelerate() In DerivedClass Accelerate() method M accelerating
sealed types and methods.
To prevent a class from being inherited, precede its declaration with sealed.
<source lang="csharp">sealed class FooSealed {}
class BaseClass
{
protected virtual void Bar() { /*...*/ }
} class Derived : BaseClass {
protected override sealed void Bar() { /* ... */ }
}</source>