Namespace ConsoleApplication1
{
Public interface IVEHICLE
{
Void start ();
Void Stop ();
Void turn ();
}
Public Class Vehiclebase: IVEHICLE
{
Void IVEHICLE.START ()
{
Console.writeline ("Vehiclebase: IveHicle.start.");
}
Public Virtual Void Start ()
{
Console.writeline ("Vehiclebase: start.");
}
Public void stop ()
{
Console.writeline ("Vehiclebase: STOP.");
}
Public Virtual Void Turn ()
{
Console.writeline ("Vehiclebase: Turn.");
}
}
Public Class Car: Vehiclebase
{
Public override void start ()
{
Console.writeline ("Car: start.");
}
Public new void stop ()
{
Console.writeline ("Car: stop.");
}
Public Override void Turn ()
{
Console.writeline ("Car: Turn.");
}
}
Public Class Benz: Car, Ivehicle
{
Public override void start ()
{
Console.writeline ("Benz: start.");
}
Public new void stop ()
{
Console.writeline ("Benz: STOP.");
}
Public new void turn ()
{
Console.writeline ("Benz: Turn.");
}
}
Class Program
{
Static void main (string [] args)
{
Ivehicle v;
Vehiclebase vb;
Car Car;
Benz Bz;
Bz = new benz ();
v = Bz;
VB = Bz;
Car = Bz;
v.turn ();
vb.turn ();
Car.turn ();
Bz.Turn ();
Console.writeline ("");
v.start ();
vb.start ();
Car.start ();
Bz.Start ();
Console.read ();
}
/ *
RESULT:
IF class beenz was defined as:
Public Class Benz: Car, Ivehicle
{
Public new void start ()
{
Console.writeline ("Benz: start.");
}
Public new void stop ()
{
Console.writeline ("Benz: STOP.");
}
Public new void turn ()
{
Console.writeline ("Benz: Turn.");
}
}
The Result IS:
Benz: Turn.
Car: turn.
Car: turn.
Benz: Turn.
Benz: start.
Car: start.
Car: start.benz: start.
IF class benz was defined as:
Public Class Benz: Car
{
Public new void start ()
{
Console.writeline ("Benz: start.");
}
Public new void stop ()
{
Console.writeline ("Benz: STOP.");
}
Public new void turn ()
{
Console.writeline ("Benz: Turn.");
}
}
The Result IS:
Car: turn.
Car: turn.
Car: turn.
Benz: Turn.
Vehiclebase: Ivehicle.start.
Car: start.
Car: start.
Benz: start.
IF class benz was defined as:
Public Class Benz: Car, Ivehicle
{
Public override void start ()
{
Console.writeline ("Benz: start.");
}
Public new void stop ()
{
Console.writeline ("Benz: STOP.");
}
Public new void turn ()
{
Console.writeline ("Benz: Turn.");
}
}
The Result IS:
Benz: Turn.
Car: turn.
Car: turn.
Benz: Turn.
Benz: start.
Benz: start.
Benz: start.
Benz: start.
* /
}
}