Csharp/C Sharp/Class Interface/Sealed

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

Illustrates sealed methods

<source lang="csharp"> /* 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();
 }

}


      </source>


Sealed Methods

<source lang="csharp"> 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();
 }

}

      </source>