Download presentation
Presentation is loading. Please wait.
Published byPeregrine Malone Modified over 9 years ago
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.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.