Title: Advanced Object Oriented Concepts
1Advanced Object Oriented Concepts
- Tonga Institute of Higher Education
2Inheritance Similarities
- You look just like your father.
- People inherit features from their parents
- Eye color
- Hair color
- Height
- You are similar to your parents
3Inheritance 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
4History 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
5Plan 1 - Van, Car and Truck Objects
- Create one class for each vehicle
- Van
- Car
- Truck
6Plan 1 - Advantages
- Its quick and easy to understand
7Plan 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
8Plan 2 - Inheritance
- Make one object with common methods.
- The code in the parent object is used in the
child objects.
Car TurnLeft() TurnRight() Brake() Go()
Truck TurnLeft() TurnRight() Brake() Go()
Methods in the parent come down to the children!
9Plan 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
Car TurnLeft() -gt Left() TurnRight() -gt
Right() Brake() Go()
Truck TurnLeft() -gt Left() TurnRight() -gt
Right() Brake() Go()
10Plan 2 Disadvantages
- Inheritance requires special code
- Inheritance requires more understanding
Car TurnLeft() TurnRight() Brake() Go()
Truck TurnLeft() TurnRight() Brake() Go()
11Inheritance 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.
12Inheritance Differences
- Each child object can have additional different
members.
Car TurnLeft() TurnRight() Brake() Go() ConservePe
trol()
Truck TurnLeft() TurnRight() Brake() Go() CarryLoa
d()
13Example of Parent / Base Class
All non-private members are shared with child
classes
14Example of Child / Sub Class
Special keyword that brings members from parent
Child specific classes
15Example 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
16Demonstration
17Inheritance in VB.Net Classes
- Look in the class definitions.
- Almost every class inherits from another class!
18Demonstration
- Inheritance in VB .Net Classes
19Access 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
Access Specifier
Name
Dim FirstName as String
Type
- Protected
- Can be used by code that inherits from this class
- Protected Friend
- Combination of Protected and Friend
20Demonstration
21Multi-Level Inheritance
- When a subclass is also a base class.
Vehicle TurnLeft() TurnRight() Brake() Go()
Car TurnLeft() TurnRight() Brake() Go() ConservePe
trol()
RentalCar TurnLeft() TurnRight() Brake() Go() Cons
ervePetrol() RentalPrice()
22Demonstration
23Overriding 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
24Demonstration
25MyBase
- Use in a child class
- Use the MyBase keyword to call methods in a base
class.
26Demonstration
27MyClass and Me 1
- If inheritance is not used, they work the same
way.
28MyClass 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.
29Demonstration
30Abstract 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
31Demonstration
32Preventing Inheritance
- NotInheritable Used to make a class
uninheritable.
33Demonstration
34Introduction 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() FastForw
ard()
35Introduction 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
36Defining 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
37Demonstration
38Implementing an Interface
39Demonstration
- Implementing an Interface
40Primary/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
41Abstract 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
42Abstract 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.