Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Object Oriented Concepts Tonga Institute of Higher Education.

Similar presentations


Presentation on theme: "Advanced Object Oriented Concepts Tonga Institute of Higher Education."— Presentation transcript:

1 Advanced Object Oriented Concepts Tonga Institute of Higher Education

2 Inheritance Similarities “You look just like your father.”  People inherit features from their parents: Eye color Hair color Height  You are similar to your parents

3 Inheritance in Visual Basic.Net Inheritance – When a class inherits members from another class Objects are like people. They can have children!  Children can inherit variables from a parent  Children can inherit methods from a parent Parent / Base Class Child / Sub Class

4 History of Inheritance In the sixties, a programmers created a program to simulate traffic  They used objects for their vehicles Cars Trucks Vans  They noticed that all vehicles did the same things Turn left Turn right Brake Go

5 Plan #1 - Van, Car and Truck Objects Create one class for each vehicle  Van  Car  Truck Van TurnLeft() TurnRight() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() Truck TurnLeft() TurnRight() Brake() Go()

6 Plan #1 - Advantages It’s quick and easy to understand Van TurnLeft() TurnRight() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() Truck TurnLeft() TurnRight() Brake() Go()

7 Plan #1 - Disadvantages Code is repeated in each object  Changing the code in Brake() requires 3 changes to 3 different objects Method names can be changed.  After a while, the objects are not similar Van TurnLeft() -> Left() TurnRight() -> Right() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() -> Move() Truck TurnLeft() TurnRight() Brake() Go() -> Start()

8 Plan #2 - Inheritance Make one object with common methods. The code in the parent object is used in the child objects. Vehicle TurnLeft() TurnRight() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() Truck TurnLeft() TurnRight() Brake() Go() Methods in the parent come down to the children!

9 Plan #2 – Advantages A change in the method code in the parent automatically changes the children classes  Method code is consistent and easy to maintain A change in the method name in the parent automatically changes the children.  Names are consistent and easy to maintain We can change a class that someone else created  It is difficult to write your own button class. But we can add changes to the button class using inheritance Vehicle TurnLeft() -> Left() TurnRight() -> Right() Brake() Go() Car TurnLeft() -> Left() TurnRight() -> Right() Brake() Go() Truck TurnLeft() -> Left() TurnRight() -> Right() Brake() Go()

10 Plan #2 – Disadvantages Inheritance requires special code Inheritance requires more understanding Vehicle TurnLeft() TurnRight() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() Truck TurnLeft() TurnRight() Brake() Go()

11 Inheritance Differences “You look just like your father.”  People inherit features from their parents: Eye color Hair color Height  You are similar to your parents. “But you are much taller”  You are also different from them.

12 Inheritance Differences Each child object can have additional different members. Vehicle TurnLeft() TurnRight() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() ConservePetrol() Truck TurnLeft() TurnRight() Brake() Go() CarryLoad()

13 Example of Parent / Base Class All non-private members are shared with child classes

14 Example of Child / Sub Class Special keyword that brings members from parent Child specific classes

15 Example of Driver for Inheritance Inherited classes work exactly like a normal class There is no difference when using an inherited method and a non-inherited method

16 Demonstration Inheritance Code

17 Inheritance in VB.Net Classes Look in the class definitions. Almost every class inherits from another class!

18 Demonstration Inheritance in VB.Net Classes

19 Access Specifiers Public  Can be used by everything Private  Can only be used by code inside the same class Dim  Same as Private Friend  Can be used by code inside the same project Dim FirstName as String Access Specifier Name Type Protected  Can be used by code that inherits from this class Protected Friend  Combination of Protected and Friend

20 Demonstration Access Specifiers

21 Multi-Level Inheritance When a subclass is also a base class. Vehicle TurnLeft() TurnRight() Brake() Go() Car TurnLeft() TurnRight() Brake() Go() ConservePetrol() RentalCar TurnLeft() TurnRight() Brake() Go() ConservePetrol() RentalPrice()

22 Demonstration Multi-Level Inheritance

23 Overriding Base Methods Overriding – When a child class replaces the behavior of a method defined in a base class. To override (replace) a method:  Define a method in the parent class to be overridable  Define a method in the child class to override Parent Class Child Class

24 Demonstration Overriding Base Methods

25 MyBase Use in a child class Use the MyBase keyword to call methods in a base class.

26 Demonstration MyBase

27 MyClass and Me 1 If inheritance is not used, they work the same way.

28 MyClass and Me 2 If inheritance is used, use these in parent classes Use the MyClass keyword to call methods in the class this keyword is used. Use the Me keyword to call methods in the current instance.

29 Demonstration MyClass and Me

30 Abstract Classes and Methods Abstract class – A class that must be inherited from  An abstract class cannot be instantiated  MustInherit – Used to make a class abstract Abstract method – A method that must be overridden  Method code does not exist in the base class because it will be overridden  MustOverride – Used to make a method abstract

31 Demonstration Abstract Class or Method

32 Preventing Inheritance NotInheritable – Used to make a class uninheritable.

33 Demonstration Preventing Inheritance

34 Introduction to Interfaces 1 All DVD players have the same controls, even if they are made by different companies (Sony, Panasonic, Toshiba, etc.) The buttons are a contract for how to operate the DVD player An interface is a contract detailing how an object is used Using this interface, I know how to use the DVDPlayer Object DVD Player Play() Pause() Stop() Rewind() FastForward()

35 Introduction to Interfaces 2 All DVD players have the same controls, even if they are made by different companies (Sony, Panasonic, Toshiba, etc.) But these different companies are not related to each other This is the difference between interfaces and inheritance

36 Defining an Interface Defining an interface tells the computer that any class that uses this interface is guaranteed to have the elements described in the interface Example: Any class that implements the ISummary will have these functions and properties  GetShortSummary  GetFullSummary  HasFullSummary

37 Demonstration Defining an Interface

38 Implementing an Interface

39 Demonstration Implementing an Interface

40 Primary/Native Interfaces vs. Secondary Interfaces Primary/Native Interface of a class is composed of all the members defined in a class Secondary Interfaces involves the implementation of other interfaces Secondary Interface Primary Interface

41 Abstract Classes vs. Interfaces It is sometimes difficult to tell the difference between an abstract class and an interface  An abstract class is a class that cannot be instantiated, but must be inherited from  An interface, by contrast, is a set of members that defines a contract for conduct

42 Abstract Classes vs. Interfaces 2 It is sometimes also difficult to decide whether to use an abstract class or an interface  A consideration is that a class may implement more than one interface. A class may only inherit from only 1 class.  Abstract classes are best for objects that are closely related. Interfaces are best for providing common functionality to unrelated classes.  Use an abstract class to provide members that use the same code among many objects. Interfaces only force classes to have the same member names.


Download ppt "Advanced Object Oriented Concepts Tonga Institute of Higher Education."

Similar presentations


Ads by Google