Sobrecarga del constructor de C#
Sobrecarga de constructores de C#
En este artículo, aprenderá sobre la sobrecarga de constructores en C# con la ayuda de ejemplos.
En C#, similar a la sobrecarga de métodos, también podemos sobrecargar constructores. Para la sobrecarga de constructores, debe haber dos o más constructores con el mismo nombre pero diferentes
- número de parámetros
- tipos de parámetros
- orden de los parámetros
Antes de aprender sobre la sobrecarga de constructores, asegúrese de conocer los constructores de C#.
Podemos realizar la sobrecarga del constructor de las siguientes maneras:
1. Número diferente de parámetros
Podemos sobrecargar el constructor si la cantidad de parámetros en un constructor es diferente.
class Car {
Car() {
...
}
Car(string brand) {
...
}
Car(string brand, int price) {
...
}
}
Aquí, tenemos tres constructores en la clase Car . Es posible tener más de un constructor porque la cantidad de parámetros en los constructores es diferente.
Tenga en cuenta que,
Car() { }
- no tiene parámetroCar(string brand) { }
- tiene un parámetroCar(string brand, int price) { }
- tiene dos parámetros
Ejemplo:Sobrecarga de constructor con diferente número de parámetros
using System;
namespace ConstructorOverload {
class Car {
// constructor with no parameter
Car() {
Console.WriteLine("Car constructor");
}
// constructor with one parameter
Car(string brand) {
Console.WriteLine("Car constructor with one parameter");
Console.WriteLine("Brand: " + brand);
}
static void Main(string[] args) {
// call with no parameter
Car car = new Car();
Console.WriteLine();
// call with one parameter
Car car2 = new Car("Bugatti");
Console.ReadLine();
}
}
}
Salida
Car constructor Car constructor with one parameter Brand: Bugatti
En el ejemplo anterior, hemos sobrecargado el Car constructor:
- un constructor tiene un parámetro
- otro tiene dos parámetros
Según el número del argumento pasado durante la llamada al constructor, se llama al constructor correspondiente.
Aquí,
- Objeto coche - llama al constructor con un parámetro
- Objeto coche2 - llama al constructor con dos parámetros
2. Diferentes tipos de parámetros
class Car {
Car(string brand) {
...
}
Car(int price) {
...
}
}
Aquí tenemos dos Coche constructores con el mismo número de parámetros. Podemos crear constructores con los mismos parámetros porque el tipo de datos dentro de los parámetros es diferente.
Tenga en cuenta que,
Car(string brand) { }
- tiene parámetro destring
escribirCar(int price) { }
- tiene parámetro deint
escribir
Ejemplo:sobrecarga del constructor con diferentes tipos de parámetros
using System;
namespace ConstructorOverload {
class Car {
// constructor with string parameter
Car(string brand) {
Console.WriteLine("Brand: " + brand);
}
// constructor with int parameter
Car(int price) {
Console.WriteLine("Price: " + price);
}
static void Main(string[] args) {
// call constructor with string parameter
Car car = new Car("Lamborghini");
Console.WriteLine();
// call constructor with int parameter
Car car2 =new Car(50000);
Console.ReadLine();
}
}
}
Salida
Brand: Lamborghini Price: 50000
En el programa anterior, hemos sobrecargado el constructor con diferentes tipos de parámetros.
Aquí,
- Objeto coche - llama al constructor con
string
tipo de parámetro - Objeto coche2 - llama al constructor con
int
tipo de parámetro
3. Diferente orden de parámetros
Car {
Car(string brand, int price) {
...
}
Car(int speed, string color) {
...
}
}
Aquí tenemos dos constructores con el mismo número de parámetros. Esto es posible porque el orden del tipo de datos en los parámetros es diferente.
Tenga en cuenta que,
Car(string brand, int price) { }
-string
el tipo de datos viene antes deint
Car(int speed, string color) { }
-int
el tipo de datos viene antes destring
Ejemplo:sobrecarga del constructor con diferente orden de parámetros
using System;
namespace ConstructorOverload {
class Car {
// constructor with string and int parameter
Car(string brand, int price) {
Console.WriteLine("Brand: " + brand);
Console.WriteLine("Price: " + price);
}
// constructor with int and string parameter
Car(int speed, string color) {
Console.WriteLine("Speed: " + speed + " km/hr");
Console.WriteLine("Color: " + color);
}
static void Main(string[] args) {
// call constructor with string and int parameter
Car car = new Car("Bugatti", 50000);
Console.WriteLine();
// call constructor with int and string parameter
Car car2 =new Car(60, "Red");
Console.ReadLine();
}
}
}
Salida
Brand: Bugatti Price: 50000 Speed: 60 km/hr Color: Red
En el programa anterior, hemos sobrecargado los constructores con diferentes órdenes de parámetros.
Aquí,
- Objeto coche - llama al constructor con
string
yint
parámetro respectivamente - Objeto coche2 - llama al constructor con
int
ystring
parámetro respectivamente
Lenguaje C
- Constructor C#
- Clase anidada de C#
- Sobrecarga del método C#
- Sobrecarga del operador de Python
- Constructores Java
- Constructor de enumeración de Java
- ¿Qué es el refrigerante de motor de automóvil?
- Sobrecarga de operadores de C++ con ejemplos
- Sobrecarga de constructores en Java:qué es y ejemplos de programas
- Java - Constructores
- Sobrecarga de C++ (operador y función)