Implementación De Una Jerarquía De Clases De Vehículos En C#

En este ejercicio, creará un proyecto de C# siguiendo un diagrama de clases que representa una jerarquía de vehículos. Definirá una clase base "Vehículo" con los atributos y métodos adecuados, y la extenderá para crear subclases como "Coche" y "MiniVan". Cada clase debe tener los atributos y métodos especificados, incluyendo métodos getter y setter para la clase "Vehículo" y métodos especializados "Tiene", como "TieneDoblesPuertas" para "MiniVan". Además, se debe implementar un programa de prueba para instanciar cada clase y llamar a sus métodos "Conducir".



Grupo

Programación orientada a objetos en C#

Objectivo

1. Cree un nuevo proyecto de C#.
2. Defina la clase base "Vehículo" con los atributos y métodos get/set adecuados.
3. Cree las subclases "Coche" y "MiniVan", extendiendo "Vehículo" con atributos y métodos adicionales.
4. Implemente el método "HasDualSlidingDoors" en "MiniVan" para comprobar si tiene puertas correderas dobles.
5. Desarrolle un programa de prueba que cree una instancia de cada clase e invoque su método "Drive".
6. Asegúrese de que el programa se compile y ejecute correctamente.

Cree un proyecto y las clases correspondientes (utilizando varios archivos) para este diagrama de clases. Cada clase debe incluir los atributos y métodos que se muestran en el diagrama, así como los métodos Get y Set para Vehículo y los métodos "Has" ("HasDualSlidingDoors") para MiniVan.

+----------------+

| Vehículo |
+----------------+
| - marca: cadena | | - año: int |
+----------------+
| + Vehículo(marca, año) |
| + ObtenerMarca(): string |
| + EstablecerMarca(marca) |
| + ObtenerAño(): int |
| + EstablecerAño(año) |
| + Conducir() |
+----------------+


+----------------+
| Coche |
+----------------+
| + Coche(marca, año) |
| + Conducir() (anular) |
+----------------+


+---------------------+
| MiniVan |
+---------------------+
| - tienePuertasCordillerasDobles: bool |
+---------------------+
| + MiniVan(marca, año, tienePuertasCordillerasDobles) |
| + TienePuertasCordillerasDobles(): bool |
| + Conducir() (anular) |
+---------------------+


Ejemplo de salida:
El vehículo está en marcha.

El coche está en marcha.
La minivan está en marcha.
La minivan tiene dos puertas correderas: Verdadero

Ejemplo de ejercicio en C#

 Copiar código C#
// File: Vehicle.cs
// Define the base class "Vehicle"
public class Vehicle
{
    private string brand; // Private attribute for the vehicle's brand
    private int year; // Private attribute for the manufacturing year

    // Constructor to initialize the vehicle
    public Vehicle(string brand, int year)
    {
        this.brand = brand;
        this.year = year;
    }

    // Getter and Setter for brand
    public string GetBrand() { return brand; }
    public void SetBrand(string brand) { this.brand = brand; }

    // Getter and Setter for year
    public int GetYear() { return year; }
    public void SetYear(int year) { this.year = year; }

    // Method to simulate driving
    public virtual void Drive()
    {
        Console.WriteLine("The vehicle is driving.");
    }
}

// File: Car.cs
// Define the Car class inheriting from Vehicle
public class Car : Vehicle
{
    // Constructor to initialize a car
    public Car(string brand, int year) : base(brand, year) {}

    // Override the Drive method
    public override void Drive()
    {
        Console.WriteLine("The car is driving.");
    }
}

// File: MiniVan.cs
// Define the MiniVan class inheriting from Vehicle
public class MiniVan : Vehicle
{
    private bool hasDualSlidingDoors; // Attribute to indicate if the minivan has dual sliding doors

    // Constructor to initialize a minivan
    public MiniVan(string brand, int year, bool hasDualSlidingDoors)
        : base(brand, year)
    {
        this.hasDualSlidingDoors = hasDualSlidingDoors;
    }

    // Method to check if the minivan has dual sliding doors
    public bool HasDualSlidingDoors()
    {
        return hasDualSlidingDoors;
    }

    // Override the Drive method
    public override void Drive()
    {
        Console.WriteLine("The minivan is driving.");
    }
}

// File: Program.cs
// Main test class
using System;

class Program
{
    static void Main()
    {
        // Create instances of Vehicle, Car, and MiniVan
        Vehicle myVehicle = new Vehicle("Generic", 2020);
        Car myCar = new Car("Toyota", 2021);
        MiniVan myMiniVan = new MiniVan("Honda", 2022, true);

        // Call the Drive method for each instance
        myVehicle.Drive();
        myCar.Drive();
        myMiniVan.Drive();

        // Check if the minivan has dual sliding doors
        Console.WriteLine("The minivan has dual sliding doors: " + myMiniVan.HasDualSlidingDoors());
    }
}

 Output

The vehicle is driving.
The car is driving.
The minivan is driving.
The minivan has dual sliding doors: True

Comparte este ejercicio de C#

Practica más ejercicios C# de Programación orientada a objetos en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..