Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

864
Vistas
Uso de getter y setter de clase abstracta

Tengo una pregunta con respecto a cómo planeo crear mis modelos abstractos, estoy usando una clase abstracta como clase base y luego subclases, ¿está bien usarlo así?

Busqué en Google y encontré algunas muestras, pero ninguna era exactamente como lo estoy haciendo.

 public abstract class Vehicle { String type; String color; public abstract getType(); public abstract setType(String type); public abstract String getColor(); public abstract setColor(String color); }

Y luego en mis subclases, podría hacer algo como esto:

 public class Truck extends Vehicle { String pickupBed; public setPickupBed(String pickupBed) { this.pickupBed = pickupBed; } public getPickupBed(String pickupBed) { return pickupBed; } public setType(String type) { this.type = type; } public getType(String type) { return type; } public setColor(String color) { this.color = color; } public getColor() { return color; } }

Y otra clase, excepto los automóviles, no tiene camioneta.

 public class Car extends Vehicle { public setType(String type) { this.type = type; } public getType(String type) { return type; } public setColor(String color) { this.color = color; } public getColor() { return color; } }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Necesita crear getter y setter abstractos solo si necesita cambiar el comportamiento de getiin y configuración para sus variables. Si todas las clases secundarias usan la misma realización de getter y setter, debe crear getters y setters en la clase abstracta:

 public abstract class Vehicle { protected String type; protected String color; public String getType(){ return type; }; public String setType(String type){ this.type = type; } ........ }

En cualquier caso, si necesita incluir alguna lógica para setter/getter en el futuro, puede anular getter/setter existente:

 public class Car extends Vehicle{ public setType(String type){ if (type.equals("type1")){ this.type = type + "_1"; } else { this.type = type + "_2"; } } public String getType(String type){ return "{" + this.type + "}"; } }

Debe agregar métodos abstractos solo si desea forzar a class-child a implementar alguna lógica, por ejemplo:

 public abstract class Vehicle { protected String type; protected String color; public String getType(){ return type; }; public String setType(String type){ this.type = type; } public String getTypeDescription(){ return "Type description: " + generateDescription(); } protected abstract String generateTypeDescription(); ........ } public class Car extends Vehicle{ String generateTypeDescription(){ return "bla...bla.."; } }
over 4 years ago · Santiago Trujillo Denunciar

0

Puede hacer todo lo que puede hacer en una clase abstracta en una clase normal, excepto crear un nuevo objeto solo mediante el uso de un constructor.

Esto significa que simplemente puede copiar y pegar los getters y setters de su subclase en su clase principal.

Dependiendo de sus objetivos de implementación e ideas de estilo, puede incluso hacer que estos captadores/establecedores sean finales , lo que significa que las subclases simplemente no pueden anularlos. Esto se vería así: public final String getType(){...} .

over 4 years ago · Santiago Trujillo Denunciar

0

El getter y setter de su súper clase (Vehículo) no deberían ser abstractos. Las variables de la superclase deben ser privadas o públicas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda