1. введение
В этом кратком руководстве мы обсудим термин “конкретный класс” в Java .
Во-первых, мы определим этот термин. Затем мы посмотрим, чем это отличается от интерфейсов и абстрактных классов.
2. Что такое Конкретный Класс?
Конкретный класс-это класс, экземпляр которого мы можем создать, используя ключевое слово new |/.
Другими словами, это полная реализация его плана . Конкретный класс завершен.
Представьте, например, Автомобиль класс:
public class Car { public String honk() { return "beep!"; } public String drive() { return "vroom"; } }
Поскольку все его методы реализованы, мы называем его конкретным классом и можем создать его экземпляр:
Car car = new Car();
Некоторые примеры конкретных классов из JDK: HashMap , HashSet , ArrayList и LinkedList .
3. Абстракция Java по сравнению с Конкретные Классы
Однако не все типы Java реализуют все свои методы. Эта гибкость, также называемая абстракцией , позволяет нам думать в более общих терминах о предметной области, которую мы пытаемся смоделировать.
В Java мы можем достичь абстракции с помощью интерфейсов и абстрактных классов.
Давайте лучше рассмотрим конкретные классы, сравнив их с этими другими.
3.1. Интерфейсы
Интерфейс-это схема для класса . Или, другими словами, это набор нереализованных сигнатур метода:
interface Driveable { void honk(); void drive(); }
Обратите внимание, что он использует интерфейс ключевое слово вместо класс.
Поскольку Управляемый имеет нереализованные методы, мы не можем создать его с помощью ключевого слова new .
Но конкретные классы, такие как Car , могут реализовать эти методы.
JDK предоставляет ряд интерфейсов, таких как Карта , Список и Набор .
3.2. Абстрактные Классы
Абстрактный класс-это класс, который имеет нереализованные методы, хотя на самом деле он может иметь и то, и другое:
public abstract class Vehicle { public abstract String honk(); public String drive() { return "zoom"; } }
Обратите внимание, что мы помечаем абстрактные классы ключевым словом абстрактный .
Опять же, поскольку Транспортное средство имеет нереализованный метод гудок , мы не сможем использовать ключевое слово new .
Некоторыми примерами абстрактных классов из JDK являются Абстрактная карта и Абстрактный список .
3.3. Конкретные Классы
В отличие от этого, конкретные классы не имеют каких-либо нереализованных методов. Независимо от того, наследуются реализации или нет, пока каждый метод имеет реализацию, класс является конкретным.
Конкретные классы могут быть такими же простыми, как наш пример Car ранее. Они также могут реализовывать интерфейсы и расширять абстрактные классы:
public class FancyCar extends Vehicle implements Driveable { public String honk() { return "beep"; } }
Класс Fancy Car предоставляет реализацию для гудка и наследует реализацию привода от Транспортного средства.
Как таковой, он не имеет нереализованных методов . Поэтому мы можем создать экземпляр класса Fancy Car с ключевым словом new .
FancyCar car = new FancyCar();
Или, проще говоря, все классы, которые не являются абстрактными, мы можем назвать конкретными классами.
4. Краткое изложение
В этом коротком уроке мы узнали о конкретных классах и их спецификациях.
Кроме того, мы показали различия между интерфейсами и конкретными и абстрактными классами.