using System;
class cons {
int a;
double b;
string c;
public cons(int a){
this.a=a;
Console.WriteLine("se recibió un entero con valor: "+a);
}
public cons(double b){
this.b=b;
Console.WriteLine("se recibió un double con valor: "+b);
}
public cons(string c){
this.c=c;
Console.WriteLine("se recibió un String con valor: "+c);
}
public cons(){
Console.WriteLine("constructor vacío sin declaración de parámetros");
}
}
class ejercicio3{
public static void Main(){
cons ob = new cons(10);
cons ob1 = new cons(11.5);
cons ob2 = new cons("madrid");
cons ob3 = new cons();
}
}
Bueno en Python si es cierto que no existe la sobrecarga y lo que se usa como solución a ello son los parámetros por defectoCódigo: Python
class Cons: def __init__(self, a=None, b=None, c=None): self.a, self.b, self.c = a, b, c if a: print(" ",a) elif b: print("Se recibió un double con valor",b) elif c: print("Se recibió una string con valor",c) else: print("Constructor sin parámetros")
O también podrías usar la función isinstance que viene incluida en la biblioteca standard de pythonCódigo: Python
class Cons: def __init__(self, param): self.param = param if isinstance(param, int): print("Se recibió un entero con valor",param) elif isinstance(param, float): print("Se recibió un double con valor",param) elif isinstance(param, str): print("Se recibió una string con valor",param) else: print("Constructor sin parámetros")
La verdad es que para estas cosas de la sobrecarga Python no se ve tan bonito como para otras jajaja
Espero haberte ayudado