Advanced Object Oriented Concepts - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Advanced Object Oriented Concepts

Description:

Access Specifier. Name. Type. Protected. Can be used by code that inherits from this class ... Access Specifiers. Multi-Level Inheritance. When a subclass is ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 43
Provided by: Dave6
Category:

less

Transcript and Presenter's Notes

Title: Advanced Object Oriented Concepts


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

6
Plan 1 - Advantages
  • Its quick and easy to understand

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

8
Plan 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!
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

Car TurnLeft() -gt Left() TurnRight() -gt
Right() Brake() Go()
Truck TurnLeft() -gt Left() TurnRight() -gt
Right() Brake() Go()
10
Plan 2 Disadvantages
  • Inheritance requires special code
  • Inheritance requires more understanding

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.

Car TurnLeft() TurnRight() Brake() Go() ConservePe
trol()
Truck TurnLeft() TurnRight() Brake() Go() CarryLoa
d()
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

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

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() ConservePe
trol()
RentalCar TurnLeft() TurnRight() Brake() Go() Cons
ervePetrol() 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() FastForw
ard()
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.
Write a Comment
User Comments (0)
About PowerShow.com