0% found this document useful (0 votes)
23 views19 pages

Chapter 4 OOP

The document discusses object-oriented programming concepts in C#, including classes, encapsulation, inheritance, and polymorphism. It reviews the pillars of OOP - encapsulation, inheritance, and polymorphism. It then covers C# classes, encapsulation using accessors/mutators and properties, inheritance using base/override keywords, and polymorphism using virtual/override/new keywords. The goal is to understand how to implement OOP concepts like encapsulation, inheritance, and polymorphism using C#.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views19 pages

Chapter 4 OOP

The document discusses object-oriented programming concepts in C#, including classes, encapsulation, inheritance, and polymorphism. It reviews the pillars of OOP - encapsulation, inheritance, and polymorphism. It then covers C# classes, encapsulation using accessors/mutators and properties, inheritance using base/override keywords, and polymorphism using virtual/override/new keywords. The goal is to understand how to implement OOP concepts like encapsulation, inheritance, and polymorphism using C#.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Chapter 4

Object-Oriented Programming
with C#
Objectives

 Understanding the C# Class type


 How to do encapsulation
 How to do inheritance
 Polymorphism with C#
Content

 Reviewing the pillars of OOP


 The C# Class type
 C#’s Encapsulation services
 C#’s Inheritance and Polymorphism support
Reviewing the pillars of OOP

 Encapsulation: How does this language hide an object's


internal implementation?
 Inheritance: How does this language promote code reuse?
 Polymorphism: How does this language let you treat related
objects in a similar way?
Reviewing the pillars of OOP

 Member variables and methods


 Constructors and Destructors
 Method overloading
 “Is a kind of” and “Has-a” relationships
 Base class and Derived class
The C# class type

 A class is a custom user-defined type (UDT) that is


composed of field data and functions
 Can define any number of constructors
 Support destructor
 Can define a C# type across multi file *.cs files
 this keyword
The C# class type

 Public interface
 Refers to the set of members that are directly accessible
from an object variable via the dot operator
 Is any item declared in a class using the public keyword
 May be populated by: methods, properties and
constant/read-only fields
C#’s Encapsulation services

 The concept of encapsulation revolves around the notion


that an object’s field data should not be directly accessible
from the public interface
 Two main techniques:
 Define a pair of traditional accessor and mutator
methods
 Define a named property
C#’s Encapsulation services

 Enforcing Encapsulation Using Traditional Accessors and


Mutators
C#’s Encapsulation services

 Enforcing Encapsulation Using Traditional Accessors and


Mutators
C#’s Encapsulation services

 Another Form of Encapsulation: Class Properties


// Encapsulation with properties.
public class Employee
{
...
private int empID;
private float currPay;
private string fullName;

// Property for empID.


public int ID
{
get { return empID;}
set { empID = value; }
}

C#’s Encapsulation services

 Read-only properties are properties without a corresponding


set block
 Write-only properties are properties without a corresponding
get block
 Static properties are properties that are accessed at the
class level, not from an instance of that class
C#’s Inheritance and Polymorphic support

 Override methods
 Is an instance method declaration includes an override modifier
 Overridden base method
 Is a method overridden by an override declaration
 Is a virtual, abstract, or override method
 Override method and overridden base method
 Have the same return type
 Have the same declared accessibility
C#’s Inheritance and Polymorphic support

 base keyword
 Used to access the members of a base class from within
a derived class
 Used to call constructors of a base class while creating
an instance of a derived class
 Using the keyword base in a static method will result in
an error.
C#’s Inheritance and Polymorphic support

 override keyword
 Used to modify a method
 An override method provides a new implementation of the
base method. The base method should be declared as
virtual
 Accessibility level of a base method cannot be changed by a
method overriding it
 Keyword new, static, virtual cannot be used along with
override modifier
(Read more at page 162, Main book)
C#’s Inheritance and Polymorphic support

 virtual keyword
 Is used in the definition of a method to support
polymorphism
 Used to modify method declaration in a class
 Child classes are free to implement their own versions of
virtual method using override keyword
 Virtual modifier cannot used with modifiers like static and
override
(Read more at page 162, Main book)
C#’s Inheritance and Polymorphic support

 new keyword
 Used as an operator or as a modifier
 new modifier is used to explicitly hide a member that is
inherited from the base class
 It is an error to use both new and override on the same
method
(Read more at page 169, Main book)
C#’s Inheritance and Polymorphic support

 Sealing a class
 A class is sealed when no class should be allowed to
inherit from that class
 Keyword sealed is used to seal a class
(Read more at page 158, Main book)
Q&A

You might also like