Csharp/C Sharp/Class Interface/Sealed
Illustrates sealed methods
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example7_10.cs illustrates sealed methods
*/
using System;
// declare the MotorVehicle 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 the Accelerate() method
public virtual void Accelerate()
{
Console.WriteLine("In MotorVehicle Accelerate() method");
Console.WriteLine(model + " accelerating");
}
}
// 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 Accelerate() method (sealed)
sealed public override void Accelerate()
{
Console.WriteLine("In Car Accelerate() method");
Console.WriteLine(model + " accelerating");
}
}
public class Example7_10
{
public static void Main()
{
// create a Car object
Console.WriteLine("Creating a Car object");
Car myCar = new Car("Toyota", "MR2");
// call the Car object"s Accelerate() method
Console.WriteLine("Calling myCar.Accelerate()");
myCar.Accelerate();
}
}
Sealed Methods
using System;
public class Name {
public string firstName;
public string lastName;
public Name(string firstName, string lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public virtual void Accelerate() {
Console.WriteLine("In Name Accelerate() method");
Console.WriteLine(lastName + " accelerating");
}
}
public class MyName : Name {
public MyName(string firstName, string lastName) : base(firstName, lastName) {
}
sealed public override void Accelerate() {
Console.WriteLine("In MyName Accelerate() method");
Console.WriteLine(lastName + " accelerating");
}
}
class Test{
public static void Main() {
Console.WriteLine("Creating a MyName object");
MyName myMyName = new MyName("Toyota", "MR2");
// call the MyName object"s Accelerate() method
Console.WriteLine("Calling myMyName.Accelerate()");
myMyName.Accelerate();
}
}