Week3 Recap OOP
Week3 Recap OOP
Week 3
Learning Outcomes
• Data Hiding
• Inheritance
• Polymorphism
OOP principles - recap
• Data Hiding
• Inheritance
• Polymorphism
Classes and Objects
Vehicles
Classes and Objects
A Vehicle
A Vehicle has
manufacturer
number of seats
number of wheels
Classes and Objects
A Vehicle does
• accelerate
• stop
• brake
Classes and Objects
Ferrari f430
has
•manufacturer Ferrari
•2 seats
•4 wheels
Classes and Objects
has
•manufacturer Ford
•8 seats
•6 wheels
Classes and Objects
Remember!!!
CLASS OBJECT
Creating a C# class
class class_name
{
// field, constructor, and
// method declarations
}
Data Hiding
• Inheritance
• Polymorphism
Data Encapsulation or Data Hiding
public Y Y Y Y
protected Y N Y N
private Y N N N
* C# modifiers
Activity 2 – Spot the errors!
public class Vehicle{
private string manufacturer;
private int noOfWheels;
public Vehicle(string manufacturer, int noOfWheels){
this.manufacturer = manufacturer;
this.noOfWheels = noOfWheels;
}
// methods
public void Accelerate() {
Console.WriteLine("Vehicle " + manufacturer +
" accelerates ... ");
}
}
OOP principles
Data Hiding
Inheritance
• Polymorphism
Inheritance
class A superclass
class B subclass
public class A
{
public A() { }
}
public class B : A
{
public B() { }
}
Inheritance
subclass superclass
public Car()
: base() /*call the constructor with no parameters of
the superclass Vehicle */
{
noOfDoors = 0;
}
OOP principles
Data Hiding
Inheritance
Polymorphism
Polymorphism
Accelerate()
Car myCar = new Car();
myCar.Accelerate();
Vehicle myCarIsAVehicle = (Vehicle) myCar;
myCarIsAVehicle.Accelerate();
Car
Vehicle x = new Car()
Accelerate()
Activity
Car accelerates…
Vehicle accelerates…
Polymorphism
Car accelerates…
Vehicle accelerates…
Polymorphism
Car accelerates…
Car accelerates…
OOP principles
Data Hiding
Inheritance
Polymorphism
Questions