- Hands-On Object:Oriented Programming with C#
- Raihan Taher
- 257字
- 2021-07-02 12:44:43
The sealed class
One of the principles of OOP is inheritance, but sometimes you may need to restrict inheritance in your code for the sake of your application's architecture. C# provides a keyword called sealed. If this keyword is placed before a class's signature, the class is considered a sealed class. If a class is sealed, that particular class can't be inherited by other classes. If any class tries to inherit a sealed class, the compiler will throw an error. Structs can also be sealed, and in that case, no class can inherit that struct.
Let's look at an example of a sealed class:
sealed class Animal {
public string name;
public int ageInMonths;
public void Move(){
Console.WriteLine("Moving");
}
public void Eat(){
Console.WriteLine("Eating");
}
}
public static void Main(){
Animal dog = new Animal();
dog.name = "Doggy";
dog.ageInMonths = 1;
dog.Move();
dog.Eat();
}
In the preceding example, we can see how we can create a sealed class. Just using the sealed keyword before the class keyword makes the class a sealed class. In the preceding example, we created an Animal sealed class, and in the main method, we instantiated the class and used it. This is now working fine. However, if we try to create a Dog class that will inherit the Animal class, as in the following code, then the compiler will throw an error, saying that the sealed Animal class can't be inherited:
class Dog : Animal {
public char gender;
}
Here is a screenshot of what the compiler will show:

- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Node.js+Webpack開發實戰
- 自然語言處理實戰:預訓練模型應用及其產品化
- GraphQL學習指南
- Mastering Selenium WebDriver
- Web Development with Django Cookbook
- Selenium Design Patterns and Best Practices
- HTML5+CSS3網站設計教程
- HTML5+CSS3+JavaScript Web開發案例教程(在線實訓版)
- Reactive Android Programming
- Clojure Polymorphism
- Modular Programming with JavaScript
- IBM RUP參考與認證指南
- Google Adsense優化實戰
- Mapping with ArcGIS Pro