Here are some basic object oriented design concepts one should know or good to know before going into a technical interview for a software engineering position.
Abstraction
The act of representation a feature without describing the extract detail of the feature.
Why it matters: “I don’t really care how you get the data. All I care about is that when I call this method with these parameters, I get this result.”
Encapsulation
Idea of wrapping data and methods that worked on the data in a single unit. It is used to hide the internal working of a class.
Why it matters: Same as above.
Inheritance
Ability of one class (child) to inheritance the capabilities of another class (parent). This way when we create a new class, we automatically inherit the properties of the parent class.
Why it matters: Allows us to reuse code and reduce redundancy. Use of parent and child classes.
Polymorphism
Ability of a feature to take on multiple forms. This is done using method overloading or overriding.
Why it matters: Allows us to use the same methods in more than one ways. Allow different objects to each express the same methods in its own way.
Interface
Ability to define what a method will do and the parameters that are required without actual implementation.
Why it matters: Allows us to “pre”-define what we want the method to do first. Implementation can come later or can be implemented in the child class.
Comments