// Sensor.cs // version 1.0 // fecha: 7-Enero-2003 // Juan Manuel Cueva Lovelle // Ejemplo de clases abstractas
#define DEPURACION
using System;
namespace ClasesAbstractas { /// <summary> /// Sensor es una clase abstracta /// No se pueden crear objetos de una clase abstracta /// </summary> abstract class Sensor { protected bool estado=false; protected float medida;
/// <summary> /// Propiedad abstracta MedidaUSA /// </summary> public abstract float MedidaUSA { get; }
public abstract void Encender(); public abstract void Apagar(); public abstract void Visualizar();
} class Termometro:Sensor { public Termometro() { estado=false; #if DEPURACION Console.WriteLine("Se ha creado un Termómetro"); #endif
} /// <summary> /// Devuelve la temperatura en grados Fahrenheit /// </summary> public override float MedidaUSA { get { return (float)((medida*9.0/5.0)+32.0); } }
public override void Visualizar() { if (estado) Console.WriteLine("Temperatura: {0:F2} grados Celsius",medida); else Console.WriteLine("Termómetro apagado"); } public override void Encender() { estado=true; Random aleatorio = new Random(); //Se inializa el generador de números aleatorios medida=(float)aleatorio.Next(-45,45);//Devuelve un número aleatorio en el intervalo }
public override void Apagar() { estado=false; }
/// <summary> /// Punto de entrada principal de la aplicación. /// </summary> [STAThread] static void Main(string[] args) { // Sensor s = new Sensor(); Error no se puede crear una instancia de una clase abstracta
Termometro t = new Termometro(); t.Encender(); t.Visualizar(); Console.WriteLine("Temperatura: {0:F2} grados Fahrenheit",t.MedidaUSA); t.Apagar(); t.Visualizar();
//Espera una tecla Console.ReadLine(); } } }
|