+ 2

When we should use abstract class?

28th Nov 2018, 10:58 PM
Dina Noviana
2 ответов
+ 3
When you want to share the implementation of a class between multiple classes. So, if you three classes that all had a property titled "name", and a method titled "print" Such as: class One{ private string name {get;set} public void Print() { Console.WriteLine(this.name);} } class Two{ private string name {get;set} public void Print() { Console.WriteLine(this.name);} } class Three{ private string name {get;set} public void Print() { Console.WriteLine(this.name);} } As we can see all three classes would share the same piece of implementation which leads to unnecessary duplication. We can abstract that code out into an abstract class and have our three classes derive from that. However, if you only want to share the definition IE I need three classes with a method "print", but I don't care how thats implemented, and have no other shared implementation you'd use an interface. You can also mark methods as abstract and force the deriving class to provide its own implementation, but I digress.
28th Nov 2018, 11:38 PM
John Smith
John Smith - avatar
+ 1
Thanks
29th Nov 2018, 12:25 AM
Dina Noviana