Problema con clases hijas, niveles de proteccion.

tema enviado por Saidomc en C#
tema iniciado el 14/08/2007
Hola!!

Tengo dos clases, Persona y Trabajador, la clase Trabajador hereda de Persona, puedo acceder a persona normamente pero no a trabajador me da el siguiente error:

La clase trabajador no es accesible debido a su nivel de proteccion.

Alguien podria ayudarme?


Este es el codigo:

namespace WindowsApplication1
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}

class Persona
{
public string Nombre; // Campo de cada objeto Persona que almacena su nombre
public int Edad; // Campo de cada objeto Persona que almacena su edad
public string NIF; // Campo de cada objeto Persona que almacena su NIF

public String Cumpleaños() // Incrementa en uno de edad del objeto Persona
{
Edad++;
return "Incrementando edad de persona";
}

// Constructor de Persona
public Persona (string nombre, int edad, string nif)
{
Nombre = nombre;
Edad = edad;
NIF = nif;
}
}

class Trabajador: Persona
{
public int Sueldo; // Campo de cada objeto Trabajador que almacena cuánto gana

Trabajador(string nombre, int edad, string nif, int sueldo)
: base(nombre, edad, nif)
{ // Inicializamos cada Trabajador en base al constructor de Persona
Sueldo = sueldo;
}

public String Cumple2()
{
return "No sirve esta porqueria";
}
}

class Cliente
{
public string Nombre;
public string Apellidos;
public DateTime FechaCreacion;
public int Valor;

public Cliente()
{
FechaCreacion = DateTime.Now;
}

public Cliente(int a, int b) : this()
{
Valor = a + b;
}
}

private void button1_Click(object sender, EventArgs e)
{
int a = 12, b = 8;
Cliente Cli1 = new Cliente();
Cliente Cli2 = new Cliente(a, b);

DateTime FecCli = Cli1.FechaCreacion;
int res = Cli2.Valor;
DateTime date2 = Cli2.FechaCreacion;

Persona persona = new Persona("Said", 26, "123");
Trabajador p = new Trabajador("Josan", 22, "77588260-Z", 100000); //justo en esta linea me da el error!!

//Msg2.Text = Trabajador

Msg1.Text = persona.Cumpleaños();

private void Form1_Load(object sender, EventArgs e)
{

}
}
}