Fix: Code example and translation (#21804)
* Fix: Code example and translation * Removed spaces, Motor variable and repeated lines
This commit is contained in:
committed by
Manish Giri
parent
ed2a1210b4
commit
b12b2ce6e7
@ -4,44 +4,41 @@ localeTitle: Classes Abstratas em Java
|
|||||||
---
|
---
|
||||||
Vamos discutir classes abstratas. Antes de mergulhar neste tutorial, é melhor que você tenha entendido conceitos de classes e herança.
|
Vamos discutir classes abstratas. Antes de mergulhar neste tutorial, é melhor que você tenha entendido conceitos de classes e herança.
|
||||||
|
|
||||||
Classes abstratas são classes que podem ser herdadas (isto é, estendidas), mas não podem ser instanciadas. Você pode pensar neles como uma **versão** de **classe** de interfaces ou como uma interface com código real anexado aos métodos.
|
Classes abstratas são classes que podem ser subclassificadas (isto é, estendidas), mas não podem ser instanciadas. Você pode pensar neles como uma **versão** de **classe** de interfaces ou como uma interface com código anexado aos métodos.
|
||||||
|
|
||||||
Considere o seguinte exemplo para entender classes abstratas: Você tem uma classe Veículo que define certas funcionalidades básicas (métodos) e certos componentes (variáveis de objeto) que uma máquina deve ter, para ser classificada como veículo. Você não pode criar um objeto de tipo Veículo porque um veículo em si é um conceito abstrato. No entanto, você pode estender a funcionalidade da classe de veículo para criar um carro ou uma motocicleta.
|
Considere o seguinte exemplo para entender classes abstratas: Você tem uma classe Veículo que define certas funcionalidades básicas (métodos) e certos componentes (variáveis de objeto) que uma máquina deve ter para ser classificada como veículo. Você não pode criar um objeto de Veículo porque um veículo em si é um conceito abstrato. No entanto, você pode estender a funcionalidade da classe de veículo para criar um carro ou uma motocicleta.
|
||||||
|
|
||||||
```java
|
```java
|
||||||
abstract class Veiculo {
|
abstract class Veiculo
|
||||||
|
{
|
||||||
// variável usada para declarar o não. de rodas em um veículo
|
// variável usada para declarar o nº de rodas em um veículo
|
||||||
private int rodas;
|
private int rodas;
|
||||||
|
|
||||||
// Variável para definir o tipo de motor
|
// um método abstrato que declara, mas não define a funcionalidade inicial
|
||||||
private Motor motor;
|
// porque cada veículo usa um mecanismo de partida diferente
|
||||||
|
abstract void darPartida();
|
||||||
// um método abstrato que apenas declara, mas não define o mecanismo de partida
|
|
||||||
// funcionalidade porque cada veículo usa um mecanismo de partida diferente
|
|
||||||
abstract void start ();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Carro extends Veiculo
|
public class Carro extends Veiculo
|
||||||
{
|
{
|
||||||
...
|
…
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Motocicleta extends Veiculo
|
public class Motocicleta extends Veiculo
|
||||||
{
|
{
|
||||||
...
|
…
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Você não pode criar um objeto usando a classe Veiculo. Porém, você pode extender a classe Veiculo, e, então, criar um objeto desta classe que extendeu Veiculo.
|
Você não pode criar um objeto usando a classe Veiculo. Porém, você pode extender a classe Veiculo, e, então, criar um objeto desta classe que extendeu Veiculo.
|
||||||
|
|
||||||
```java
|
```java
|
||||||
|
Veiculo novoVeiculo = new Veiculo(); // Inválido
|
||||||
|
|
||||||
Veiculo veiculo = new Veiculo (); // Inválido
|
|
||||||
Veiculo carro = new Carro(); // válido
|
Veiculo carro = new Carro(); // válido
|
||||||
Veiculo mBike = new Motocicleta (); // válido
|
Veículo moto = new Motocicleta(); // válido
|
||||||
|
|
||||||
Carro carro = new Carro(); // válido
|
|
||||||
Motocicleta mBikeObj = new Motocicleta(); // válido
|
|
||||||
|
|
||||||
|
Carro carroObj = new Carro(); // válido
|
||||||
|
Motocicleta motoObj = new Motocicleta(); // válido
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Se a classe filha não implementar os métodos abstratos da classe mãe, ela também se tornará
|
||||||
|
uma classe abstrata.
|
||||||
|
Reference in New Issue
Block a user