Herencia y clases abstractas

01/11/2004 - 14:13 por Lourdes | Informe spam
He definido mi clase abstracta como:

using System;
using System.Collections;

namespace Clientes
{
abstract class TiposPersonaAbs
{
public TiposPersonaAbs()
{
}
public abstract ArrayList buscar();
public abstract int tipoPersona2codigo(string
nombreTipoPersona);
public abstract string codigo2tipoPersona(int
codigoTipoPersona);
}
}

-
y la clase que hereda:

using System;
using System.Data;

namespace Clientes
{
public class TiposPersonaFunc : TiposPersonaAbs
{
public TiposPersonaFunc()
{
}


}
}

Entonces me da un error diciemdome que la clase abstracta
es menos accesible que la que hereda.

Por favor, alguien puede decirme como se debe hacer ?

Gracias

Preguntas similare

Leer las respuestas

#1 Tomas Restrepo \(MVP\)
01/11/2004 - 14:35 | Informe spam
Lourdes,
Tienes que hacer la clase abstracta publica tambien.

Tomas Restrepo



"Lourdes" wrote in message
news:30e501c4c014$8e358e90$
He definido mi clase abstracta como:

using System;
using System.Collections;

namespace Clientes
{
abstract class TiposPersonaAbs
{
public TiposPersonaAbs()
{
}
public abstract ArrayList buscar();
public abstract int tipoPersona2codigo(string
nombreTipoPersona);
public abstract string codigo2tipoPersona(int
codigoTipoPersona);
}
}

-
y la clase que hereda:

using System;
using System.Data;

namespace Clientes
{
public class TiposPersonaFunc : TiposPersonaAbs
{
public TiposPersonaFunc()
{
}


}
}

Entonces me da un error diciemdome que la clase abstracta
es menos accesible que la que hereda.

Por favor, alguien puede decirme como se debe hacer ?

Gracias
Respuesta Responder a este mensaje
#2 Lourdes
01/11/2004 - 14:55 | Informe spam
Pero yo creo que estoy haciendo algo mal, porque si la
pongo publica y abstracta a la clase abstracta, la funcion:

public ArrayList buscar()
{

}

de la clase que hereda me da un error diciendome que la
clase que hereda no implementa el miembro abstracto
heredado Clientes.TiposPersonasAbs.buscar()

Gracias.

Lourdes,
Tienes que hacer la clase abstracta publica tambien.

Tomas Restrepo



"Lourdes" wrote in


message
news:30e501c4c014$8e358e90$
He definido mi clase abstracta como:

using System;
using System.Collections;

namespace Clientes
{
abstract class TiposPersonaAbs
{
public TiposPersonaAbs()
{
}
public abstract ArrayList buscar();
public abstract int tipoPersona2codigo(string
nombreTipoPersona);
public abstract string codigo2tipoPersona(int
codigoTipoPersona);
}
}

-
y la clase que hereda:

using System;
using System.Data;

namespace Clientes
{
public class TiposPersonaFunc : TiposPersonaAbs
{
public TiposPersonaFunc()
{
}


}
}

Entonces me da un error diciemdome que la clase abstracta
es menos accesible que la que hereda.

Por favor, alguien puede decirme como se debe hacer ?

Gracias




.

Respuesta Responder a este mensaje
#3 Marcio
01/11/2004 - 15:34 | Informe spam
Si la clase que hereda de una clase abstracta no es abstracta debe
implementar TODOS los metodos abstractos, similar a lo
que te exige una interfaz

Saludos
Marcio


Lourdes wrote:
Pero yo creo que estoy haciendo algo mal, porque si la
pongo publica y abstracta a la clase abstracta, la funcion:

public ArrayList buscar()
{

}

de la clase que hereda me da un error diciendome que la
clase que hereda no implementa el miembro abstracto
heredado Clientes.TiposPersonasAbs.buscar()

Gracias.


Lourdes,
Tienes que hacer la clase abstracta publica tambien.

Tomas Restrepo



"Lourdes" wrote in



message

news:30e501c4c014$8e358e90$

He definido mi clase abstracta como:

using System;
using System.Collections;

namespace Clientes
{
abstract class TiposPersonaAbs
{
public TiposPersonaAbs()
{
}
public abstract ArrayList buscar();
public abstract int tipoPersona2codigo(string
nombreTipoPersona);
public abstract string codigo2tipoPersona(int
codigoTipoPersona);
}
}

-
y la clase que hereda:

using System;
using System.Data;

namespace Clientes
{
public class TiposPersonaFunc : TiposPersonaAbs
{
public TiposPersonaFunc()
{
}


}
}

Entonces me da un error diciemdome que la clase abstracta
es menos accesible que la que hereda.

Por favor, alguien puede decirme como se debe hacer ?

Gracias




.

Respuesta Responder a este mensaje
#4 Antonio
02/11/2004 - 12:56 | Informe spam
Los métodos abstractados declarados en la clase base
abstracta deben ser marcados con 'override' en la clase
derivada que los implementa.

Saludos.
Antonio

Si la clase que hereda de una clase abstracta no es


abstracta debe
implementar TODOS los metodos abstractos, similar a lo
que te exige una interfaz

Saludos
Marcio


Lourdes wrote:
Pero yo creo que estoy haciendo algo mal, porque si la
pongo publica y abstracta a la clase abstracta, la




funcion:

public ArrayList buscar()
{

}

de la clase que hereda me da un error diciendome que la
clase que hereda no implementa el miembro abstracto
heredado Clientes.TiposPersonasAbs.buscar()

Gracias.


Lourdes,
Tienes que hacer la clase abstracta publica tambien.

Tomas Restrepo



"Lourdes" wrote in



message

news:30e501c4c014$8e358e90$

He definido mi clase abstracta como:

using System;
using System.Collections;

namespace Clientes
{
abstract class TiposPersonaAbs
{
public TiposPersonaAbs()
{
}
public abstract ArrayList buscar();
public abstract int tipoPersona2codigo(string
nombreTipoPersona);
public abstract string codigo2tipoPersona(int
codigoTipoPersona);
}
}

-
y la clase que hereda:

using System;
using System.Data;

namespace Clientes
{
public class TiposPersonaFunc : TiposPersonaAbs
{
public TiposPersonaFunc()
{
}


}
}

Entonces me da un error diciemdome que la clase








abstracta
es menos accesible que la que hereda.

Por favor, alguien puede decirme como se debe hacer ?

Gracias




.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida