Resources

Object-Oriented Programming and Polymorphism

Lesson1

Objects

Members

Object Model

Encapsulation

Polymorphism

Lesson 2

Overloading Members

Overloading Methods

public void DisplayMessage(int i)
{
MessageBox.Show(i.ToString());
}

public void DisplayMessage(string s)
{
MessageBox.show(s);
}

Overloading Operators

public struct HoursWorked
{
float RegularHours;
float OvertimeHours;
}
public static _type_ operator _op_ (Arg1[, Arg 2])
{
...
}
public struct HoursWorked
{
float RegularHours;
float OvertimeHours;

public static HoursWorked operator + (HoursWorked a, HoursWorked b)
{
HoursWorked Result = new HoursWorked();

Result.RegularHours = a.RegularHours + b.RegularHours;
Result.OvertimeHours = a.OvertimeHours + b.OvertimeHours;

return Result;
}

public static HoursWorked operator + (HoursWorked a, int b)
{
HoursWorked Result = new HoursWorked();

Result.RegularHours = a.RegularHours + b;

return Result;
}
}

...

HoursWorked tot = new HoursWorked();

tot = Sunday + Monday;

Lesson 3

Interface Polymorphism

public interface IDrivable
{
void GoForward();

void Halt();

int DistanceTravelled();

int FuelLevel

{
get:
..
}

event System.EventHandler OutOfFuel;
}
public void GoSomewhere(IDrivable v)
{
...
}

Implement Interface

public class Truck : IDrivable, IFuelBurning
{
public void GoForward(int Speed)
{

}
}
public class Truck : IDrivable, IFuelBurning
{
void IDrivable.GoForward(int Speed)
{

}
}

Inheritance Polymorphism

public class FourWheelDrivePickupTruck : PickupTruck, IFourWheelDrive
{
...
}
public sealed class AClass
{

}

Overriding Base Class Members

public class SportsCar : Car
{
public override void GoForward(int Speed)
{

}
}
public virtual void OverrideMe()
{

...

}

Hiding Base Class Members

public class MyBaseClass
{

public string MyMethod(int I)
{

}
}

public class MyInheritedClass : MyBaseClass
{
internal new int MyMethod(int I)
{

}
}

Access Base Implementation

public override void MyMethod()
{
base.MyMethod();
}

Abstract Classes and Members

public abstract class AbstractClass
{
public abstract void GoForward(int I);

public abstract string Colour
{
get:

set:
}
}

Downloads