In the next video, you will learn about generalisation relationship between classes.
In the previous video, you learnt what a generalisation relationship is. Using a generalisation relationship, you can put common attributes and methods of several classes into one general class, which saves you from repeating the same code and also allows code reusability.
A generalisation relationship is also called an 'is a' relationship. For example, in your Inventory Management System, the Admin 'is a' SystemUser; so, the Admin is the child class and SystemUser is the parent class. Generalisation relationships don’t have any multiplicity associated with them.
Let's now look about the next relationship between classes which is generalization. When we say generalization there are some common behaviors or functions which can be part of one class and very custom behaviors alone can be extended in another class. The idea is the functionalities which are common can be placed in one place and it can be reused and only where there is some very specific customizations that can be done on a case to case basis. Let's see with an example system user. A system user can be thought of any user in the system where every user will have some common properties and methods like a user ID login log out all such functions and attributes, while from the system user few other users could have very specific methods where that can be custom implemented by each of those users. In this case supplier, admin, inventory manager, every one of these is a type of system user but they could have some custom implementations which are specific to them but majority of them can be reused from system user. This in terms of implementation is popularly also known as inheritance or it's called as generalization which is represented using an arrow from the child class to the parent class where the arrow points to the parent class.
Generalization is a relationship between classes where common behaviors or functions are placed in one class and custom behaviors are extended in another class.
Functionalities that are common can be placed in one place and reused, while specific customizations can be done on a case-to-case basis.
An example of generalization is the System User, where every user will have some common properties and methods such as user ID, login, and logout.
Specific methods can be custom implemented by each user type, such as Supplier, Admin, and Inventory Manager, while the majority can be reused from the System User.
Generalization is also known as inheritance and is represented using an arrow from the child class to the parent class where the arrow points to the parent class.
Generalization allows for efficient and effective code reuse in object-oriented programming.
In the next video, you will learn how to draw a generalisation relationship between different classes in draw.io.
In the previous video, you learned how to draw Generalisation Relationship between different classes. So far you have a broad understanding of Generalisation Relationship.
Earlier you have read about two types of visibility, Public and Private. In the next video, you will learn about third type of visibility or access specifier, Protected.
In the previous video, you learnt about protected access specifier. If an attribute or method is marked 'protected' using the '#' symbol, that attribute and method can only be accessed in that class and all the child classes derived from it.
In the next video, you will learn about abstract classes and methods.
The abstract method just provides a signature in the parent class. Each abstract method in the parent class has to be implemented in the child class.
All the classes that have abstract methods inside them have to declared abstract classes. But if a class is declared an abstract class, it may not have any abstract method.
Now you are familiar with another type of relationship between classes: The generalisation relationship. You also learnt how to represent the generalisation in the class diagram.