C sharp - Tengo que agregar las dos clases?

 
Vista:
Imágen de perfil de Daniel Gonzalo
Val: 32
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Daniel Gonzalo (12 intervenciones) el 18/10/2016 18:15:20
Ante todo gracias por su tiempo.
Empece con POO y me encontré con algo que me hace pensar que estoy usando mal la herencia.

tengo la clase Persona con sus propiedades y métodos.
creo la clase Empleado la cual la implementa a Persona (marco la referencia a la primera o sea Persona)
creo sus métodos y propiedades.

cuando la quiero probar en una tercera solución cuando creo la variable e que instancia al objeto empleado para poder acceder a sus get y set tengo que referenciar también la clase persona de otra forma me marca error que la clase empleado deriva de persona... yo creí que al ya tenerla referenciada y implementada en Empleados (a Persona), en la solución final no tenía que llamar a la clase base también.

Espero poder haber sido claro si no mil disculpas por su tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Aarón Castillo
Val: 39
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Aarón Castillo (3 intervenciones) el 18/10/2016 21:33:34
Hola, qué tal, ¿puedes subir capturas de pantalla de la inquietud que tienes o en su defecto el código fuente?.

Entiendo tu punto pero para poderte dar una explicación más adecuada necesito ver dónde está tu duda.

No sé si conozcas el uso de la palabra reservada super().

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Daniel Gonzalo
Val: 32
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Daniel Gonzalo (12 intervenciones) el 18/10/2016 22:03:39
Aron, antes que nada gracias por tu tiempo.
Te comento como super no lo pude utilizar ya que marca error, lo que use es de base(parametros) con esto le paso los parametros al constructor de la clase Persona.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Clase persona
  public  class Persona
    {
       private string nombre;
       private string apellidos;
       private int edad;
       private DateTime fechaNacimiento;
       private string sexo;
 
        //constructor por default
        public Persona(){
        }
 
 
    public Persona(string Apellido, string nombre, int edad, DateTime fn, string sex)
        {
            this.apellidos = Apellido;
            this.nombre = nombre;
            this.edad = edad;
            this.fechaNacimiento = fn;
            this.sexo = sex;
 
        }
 
//Clase Employees
 
using System;
using Personas;
namespace Employee
{
    public  class Employees:Persona
    {
 
        private int Legajo;
        private System.DateTime hireDate;
        private string nroInterno;
        private int sucursal;
        private float salary;
        private string cargo;
 
 
 
 
 public Employees(int legajo, DateTime hire, string interno, int sucursal, string nombre, string apellido, int edad, DateTime fn, string sexo):base(apellido,nombre,edad,fn,sexo) //acá es donde le paso los parametros al constructor de la clase Persona.
 
        {
 
            this.Legajo = legajo;
            this.hireDate = hire;
            this.nroInterno = interno;
            this.sucursal = sucursal;
            this.nroInterno = interno;
 
           }
// Cuando lo uso así y realizo las pruebas desde consola, es donde si no hago la referencia a las dos clases Persona y Employees es que genera el error cuando trato de pasar los valores de la clase base(). si bien si se a que te referis con super en C# no lo puedo encontrar solo me funcionó cuando use en el constructor la palabra base()
 
Consola
 
  class Program
    {
 
        static void Main(string[] args)
        {
            DateTime fechaNacimiento = new DateTime(1972 , 01 , 24);
            DateTime fechaContratacion = new DateTime(2012, 01, 12);
            Employees e = new Employees(22608080, fechaNacimiento, "265", 1, "Capelli", "Daniel", 44, fechaContratacion, "m");
 
            Console.WriteLine("Datos cargados en empeleado basado en persona \n");
            //Aca verifico que si pasa los parametros al constructor de la clase base Persona
            //ya que tiene valores los datos de nombre y apellido
            Console.WriteLine(e.ToString() + " " + e.Apellido + " " + e.FechaContratacion );
            Console.ReadKey();
 
        }
Pero le tengo que agregar si o si referncia a la Clase Persona sino marca error cuan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 356
Plata
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Miguel (160 intervenciones) el 18/10/2016 23:17:31
Puedes usar una 'Interface' también...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Daniel Gonzalo
Val: 32
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Daniel Gonzalo (12 intervenciones) el 18/10/2016 23:27:38
Es buena también así me aseguro si o si que tenga que definir en la clase los métodos declarados y propiedades en la clase que la implementó no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel Gonzalo
Val: 32
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Daniel Gonzalo (12 intervenciones) el 18/10/2016 23:33:29
Lo exprese mal. usando una interfaz puedo definir los metodos y propiedades que existen en la interfaz en la clase no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Aarón Castillo
Val: 39
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Aarón Castillo (3 intervenciones) el 19/10/2016 01:36:13
Creo que ya entendí tu problema, y la solución sería esta:

Tienes el constructor de empleados así pero dices que si no haces referencia a la clase padre te marca una error:

1
2
3
4
5
6
7
8
9
10
11
public Employees(int legajo, DateTime hire, string interno, int sucursal, string nombre, string apellido, int edad, DateTime fn, string sexo):base(apellido,nombre,edad,fn,sexo) //acá es donde le paso los parametros al constructor de la clase Persona.
 
{
 
this.Legajo = legajo;
this.hireDate = hire;
this.nroInterno = interno;
this.sucursal = sucursal;
this.nroInterno = interno;
 
}

Entonces, ¿has usado esto?:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Employees(int legajo, DateTime hire, string interno, int sucursal, string nombre, string apellido, int edad, DateTime fn, string sexo):base(apellido,nombre,edad,fn,sexo) //acá es donde le paso los parametros al constructor de la clase Persona.
 
{
 
this.Legajo = legajo;
this.hireDate = hire;
this.nroInterno = interno;
this.sucursal = sucursal;
this.nroInterno = interno;
 
//Usando base + atributo se accede a los elementos de la clase base sólo si éstos son protected o public.
base.apellido = apellido;
base.nombre = nombre;
base.edad = edad;
base.fn = fn;
base.sexo = sexo;
}

Espero esto te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Daniel Gonzalo
Val: 32
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Daniel Gonzalo (12 intervenciones) el 19/10/2016 02:01:54
Toda la razón!!!! Mil gracias! Ya lo probé y es eso. Realmente gracias por haberte tomado el tiempo para verlo
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Aarón Castillo
Val: 39
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Tengo que agregar las dos clases?

Publicado por Aarón Castillo (3 intervenciones) el 19/10/2016 02:08:18
No hay de qué, para eso estamos :).

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar