Csharp/C Sharp/Class Interface/Sealed — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 11:38, 26 мая 2010

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();
  }
}