/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example7_3.cs illustrates member accessibility
*/
using System;
// declare the MotorVehicle class
class MotorVehicle
{
// declare the fields
private string make;
protected string model;
// define a constructor
public MotorVehicle(string make, string model)
{
this.make = make;
this.model = model;
}
// define the Start() method (may be overridden in a
// derived class)
public virtual void Start()
{
TurnStarterMotor();
System.Console.WriteLine("Vehicle started");
}
// define the TurnStarterMotor() method
private void TurnStarterMotor()
{
System.Console.WriteLine("Turning starter motor...");
}
}
// declare the Car class (derived from MotorVehicle)
class Car : MotorVehicle
{
// define a constructor
public Car(string make, string model) :
base(make, model)
{
// do nothing
}
// override the base class Start() method
public override void Start()
{
Console.WriteLine("Starting " + model); // model accessible
base.Start(); // calls the Start() method in the base class
// Console.WriteLine("make = " + make); // make is not accessible
}
}
public class Example7_3
{
public static void Main()
{
// create a Car object and call the object's Accelerate() method
Car myCar = new Car("Toyota", "MR2");
myCar.Start();
// make and model are not accessible, so the following two lines
// are commented out
// Console.WriteLine("myCar.make = " + myCar.make);
// Console.WriteLine("myCar.model = " + myCar.model);
}
}