RK0

The Real-Time Kernel '0'

It is possible to say that commonality arises due to the ability to create an abstract class or a generic enough interface that can encompass various meaningful subclasses for the system. An abstract data type (ADT) is a type that can be totally defined by the operations acting on it.

This is directly related to object-oriented design principles such as the Liskov Substitution Principle (LSP) and the Interface Segregation Principle (ISP).

When you create an abstract class or an interface, you define a contract or a set of operations that concrete classes (subclasses or implementors) must adhere to. These operations are relevant to a group of related classes.

These classes may be quite different in terms of specific behaviour, but they share a common set of operations or characteristics defined by the interface or abstract class. This allows you to treat these classes uniformly in situations where common behaviour is sufficient, while also enabling each class to provide its specialised behaviour when needed.

From a conceptual standpoint, having commonality enhances system flexibility, allowing it to be more expandable and adaptable to future changes. You can introduce new classes that implement the same interface or inherit from the same abstract class without impacting the existing code, provided that these new classes adhere to the defined contract.