/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example7_1.cs illustrates inheritance
*/
using System;
// declare the MotorVehicle class (the base class)
class MotorVehicle
{
// declare the fields
public string make;
public string model;
// define a constructor
public MotorVehicle(string make, string model)
{
this.make = make;
this.model = model;
}
// define a method
public void Start()
{
Console.WriteLine(model + " started");
}
}
// declare the Car class (derived from the MotorVehicle base class)
class Car : MotorVehicle
{
// declare an additional field
public bool convertible;
// define a constructor
public Car(string make, string model, bool convertible) :
base(make, model) // calls the base class constructor
{
this.convertible = convertible;
}
}
// declare the Motorcycle class (derived from the MotorVehicle base class)
class Motorcycle : MotorVehicle
{
// declare an additional field
public bool sidecar;
// define a constructor
public Motorcycle(string make, string model, bool sidecar) :
base(make, model) // calls the base class constructor
{
this.sidecar = sidecar;
}
// define an additional method
public void PullWheelie()
{
Console.WriteLine(model + " pulling a wheelie!");
}
}
public class Example7_1
{
public static void Main()
{
// declare a Car object, display the object's fields, and call the
// Start() method
Car myCar = new Car("Toyota", "MR2", true);
Console.WriteLine("myCar.make = " + myCar.make);
Console.WriteLine("myCar.model = " + myCar.model);
Console.WriteLine("myCar.convertible = " + myCar.convertible);
myCar.Start();
// declare a Motorcycle object, display the object's fields, and call the
// Start() method
Motorcycle myMotorcycle = new Motorcycle("Harley-Davidson", "V-Rod", false);
Console.WriteLine("myMotorcycle.make = " + myMotorcycle.make);
Console.WriteLine("myMotorcycle.model = " + myMotorcycle.model);
Console.WriteLine("myMotorcycle.sidecar = " + myMotorcycle.sidecar);
myMotorcycle.Start();
myMotorcycle.PullWheelie();
}
}