Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

866
Visualizações
Abstract Class getter and setter usage

I have a question in regards to how I am planning to create my abstract models, I am using an abstract class as the base class and then subclasses, is it fine to use it like this?

I did google and found some samples but none was exactly like how I am doing it.

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);
}

And then in my subclasses, I could do something like this:

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;
    }
}

And another class, except cars, does not have a pickup bed.

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 Respostas
Responde à pergunta

0

You need to create abstract getter and setter only if you need change behaviour of getiin and setting for your variables. If all child classes use the same getter and setter realization - you need to create getters and setters in the abstract class:

  public abstract class Vehicle {

    protected String type;
    protected String color;

    public String getType(){
        return type;
    };

    public String setType(String type){
        this.type = type;
    }

    ........

  }

In any case, if you need to include any logic for setter/getter in the future - you may override existing getter/setter:

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 + "}";
  }
  
 }

You need to add abstract methods only if you want to force class-child implement some logic, f.e:

   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 Relatório

0

You can do everything in an abstract class that you can do in a normal class except creating a new object only by using a constructor.

This means that you can simply copy and paste the getters and setters from your subclass into your parent class.

Depending on your implementation goals and style ideas, you can even make these getters/ setters final, meaning that subclasses simply cannot override them. This would look something like that: public final String getType(){...}.

over 4 years ago · Santiago Trujillo Relatório

0

Your super class(Vehicle)'s getter and setter shouldn't be abstract. Variables in the super class must be private or public.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda