O que é e para que serve uma classe abstrata?
Oi gente!
Tenho estudado bastante orientação a objetos e tenho tentado aplicar em meus projetos. Mas tiveram umas coisas que ainda não peguei.
Uma delas seria a tal da classe abstrata. Para mim não ficou muito claro em que tipo de situação devo usá-la.
Tenho estudado bastante orientação a objetos e tenho tentado aplicar em meus projetos. Mas tiveram umas coisas que ainda não peguei.
Uma delas seria a tal da classe abstrata. Para mim não ficou muito claro em que tipo de situação devo usá-la.
Larissa Aguiar
Curtidas 0
Melhor post
Jones Granatyr
11/05/2017
Olá! Por exemplo, no seu sistema você tem cadastro de "clientes" e "funcionários". Ambos compartilham alguns atributos comuns para qualquer pessoa, como nome e cpf. Nesse caso você pode fazer uma classe abstrata parecido com a mostrada abaixo
abstract class pessoa {
string nome;
string cpf;
}
O cliente pode ter um campo específico para ele, que é a data desde quando ele é cliente da empresa, por exemplo. Ficaria assim
class cliente extends pessoa {
date data_cliente_desde;
}
E o funcionário pode ter o número da carteira de trabalho
class funcionario extends pessoa {
string numero_carteira;
}
Como no seu sistema você só pode ter clientes e funcionários (pode não fazer sentido criar um objeto da classe pessoa), você define a classe "pessoa" como abstrata, o que indica que você não pode instanciar/criar ela (usando o comando new). Você só pode instanciar clientes e funcionários, que não são abstratas. Em resumo, esse tipo de classe pode ser usada para melhorar a organização do código
abstract class pessoa {
string nome;
string cpf;
}
O cliente pode ter um campo específico para ele, que é a data desde quando ele é cliente da empresa, por exemplo. Ficaria assim
class cliente extends pessoa {
date data_cliente_desde;
}
E o funcionário pode ter o número da carteira de trabalho
class funcionario extends pessoa {
string numero_carteira;
}
Como no seu sistema você só pode ter clientes e funcionários (pode não fazer sentido criar um objeto da classe pessoa), você define a classe "pessoa" como abstrata, o que indica que você não pode instanciar/criar ela (usando o comando new). Você só pode instanciar clientes e funcionários, que não são abstratas. Em resumo, esse tipo de classe pode ser usada para melhorar a organização do código
GOSTEI 4
Mais Respostas
Calebe Menezes
11/05/2017
Exatamente como o Jones explicou. A classe abstrata vai servir apenas como um suporte para outras classes que serão instanciadas, mas ela mesma não será.
No exemplo do Jones, o funcionário quando for instanciado, terá todos os atributos e métodos da classe pessoa e da classe funcionario.
Ficou claro Larissa?
No exemplo do Jones, o funcionário quando for instanciado, terá todos os atributos e métodos da classe pessoa e da classe funcionario.
Ficou claro Larissa?
GOSTEI 2
Larissa Aguiar
11/05/2017
Obrigada Jones e Calebe. Então a classe é definida como abstrata somente por causa disso? Para que ela não sirva como instância de um objeto, permitindo que outras por meio da herança peguem seus atributos e métodos?
Pensei que era mais coisa, mas se for só isso tudo bem rs.
Obrigada <3
Pensei que era mais coisa, mas se for só isso tudo bem rs.
Obrigada <3
GOSTEI 0