Classe concreta em Java

Classe concreta em Java

1. Introdução

Neste guia rápido,we’ll discuss the term “concrete class” in Java.

Primeiro, vamos definir o termo. Então, veremos como é diferente de interfaces e classes abstratas.

2. O que é uma classe concreta?

A concrete class is a class that we can create an instance of, using the new keyword.

Em outras palavras, é umfull implementation of its blueprint. Uma classe concreta está completa.

Imagine, por exemplo, uma classeCar :

public class Car {
    public String honk() {
        return "beep!";
    }

    public String drive() {
        return "vroom";
    }
}

Como todos os seus métodos são implementados, chamamos de classe concreta e podemos instanciar:

Car car = new Car();

Alguns exemplos de classes concretas do JDK sãoHashMap, HashSet, ArrayList, and LinkedList.

3. Abstração Java vs. Aulas de concreto

Not all Java types implement all their methods, though. Essa flexibilidade, também chamada deabstraction, nos permite pensar em termos mais gerais sobre o domínio que estamos tentando modelar.

Em Java, podemos obter abstração usando interfaces e classes abstratas.

Vamos dar uma olhada melhor nas classes concretas, comparando-as com essas outras.

3.1. Interfaces

An interface is a blueprint for a class. Ou, em outras palavras, é uma coleção de assinaturas de métodos não implementadas:

interface Driveable {
    void honk();
    void drive();
}

Observe que ele usa a palavra-chaveinterface em vez declass.

ComoDriveable  tem métodos não implementados, não podemos instanciá-lo com a palavra-chavenew .

Mas,concrete classes like Car can implement these methods.

O JDK fornece várias interfaces comoMap, List, and Set.

3.2. Classes abstratas

An abstract class is a class that has unimplemented methods, embora possa realmente ter ambos:

public abstract class Vehicle {
    public abstract String honk();

    public String drive() {
        return "zoom";
    }
}

Observe que marcamos classes abstratas com a palavra-chaveabstract.

Novamente, comoVehicle tem um método não implementado,honk, não poderemos usar a palavra-chavenew .

Alguns exemplos de classes abstratas do JDK sãoAbstractMap and AbstractList.

3.3. Aulas de concreto

Por outro lado,concrete classes don’t have any unimplemented methods. Se as implementações são herdadas ou não, desde que cada método tenha uma implementação, a classe é concreta.

Classes concretas podem ser tão simples quanto nosso exemploCar anterior. Eles também podem implementar interfaces e estender classes abstratas:

public class FancyCar extends Vehicle implements Driveable {
    public String honk() {
        return "beep";
    }
}

O sclassFancyCar fornece uma implementação parahonk e herda a implementação dedrive deVehicle.

As such, it has no unimplemented methods. Portanto, podemos criar uma instância de classeFancyCar com a palavra-chavenew.

FancyCar car = new FancyCar();

Ou, simplesmente, todas as classes que não são abstratas, podemos chamar de classes concretas.

4. Sumário

Neste breve tutorial, aprendemos sobre classes concretas e suas especificações.

Além disso, mostramos as diferenças entre interfaces e classes concretas e abstratas.