Posts

Showing posts with the label Oop

Call An Overridden Method From Super Class In Typescript

Answer : The key is calling the parent's method using super.methodName(); class A { // A protected method protected doStuff() { alert("Called from A"); } // Expose the protected method as a public function public callDoStuff() { this.doStuff(); } } class B extends A { // Override the protected method protected doStuff() { // If we want we can still explicitly call the initial method super.doStuff(); alert("Called from B"); } } var a = new A(); a.callDoStuff(); // Will only alert "Called from A" var b = new B() b.callDoStuff(); // Will alert "Called from A" then "Called from B" Try it here The order of execution is: A 's constructor B 's constructor The assignment occurs in B 's constructor after A 's constructor— _super —has been called: function B() { _super.apply(this, arguments); // MyvirtualMethod c...

Aggregation Vs Composition Vs Association Vs Direct Association

Image
Answer : Please note that there are different interpretations of the "association" definitions. My views below are heavily based on what you would read in Oracle Certification books and study guides. Temporary association A usage inside a method , its signature or as a return value. It's not really a reference to a specific object. Example: I park my Car in a Garage. Composition association A so-called " STRONG relationship ": The instantiation of the linked object is often hard coded inside the constructor of the object. It cannot be set from outside the object. (Composition cannot be a many-to-many relationship.) Example: A House is composed of Stones. Direct association This is a " WEAK relationships ". The objects can live independent and there are usually setters or other ways to inject the dependent objects. Example: A Car can have Passengers. Aggregation association Very similar to a Direct as...