Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Интерфейс против абстрактного класса в Java:в чем разница?

Что такое интерфейс?

Интерфейс — это план, который можно использовать для реализации класса. Интерфейс не содержит никаких конкретных методов (методов, имеющих код). Все методы интерфейса являются абстрактными методами.

Интерфейс не может быть создан. Однако можно создавать экземпляры классов, реализующих интерфейсы. Интерфейсы никогда не содержат переменных экземпляра, но они могут содержать общедоступные статические конечные переменные (т. е. константные переменные класса)

Что такое абстрактный класс?

Класс, в объявлении которого есть ключевое слово abstract, называется абстрактным классом. Абстрактные классы должны иметь хотя бы один абстрактный метод. , т. е. методы без тела. Он может иметь несколько конкретных методов.

Абстрактные классы позволяют создавать схемы для конкретных классов. Но наследующий класс должен реализовать абстрактный метод.

Абстрактные классы не могут быть созданы.

Важные причины использования интерфейсов

Важные причины использования абстрактного класса

Интерфейс по сравнению с. Абстрактный класс

Абстрактный класс позволяет вам создавать функциональные возможности, которые подклассы могут реализовать или переопределить, тогда как интерфейс позволяет вам только констатировать функциональные возможности, но не реализовывать их. Класс может расширять только один абстрактный класс, в то время как класс может реализовывать несколько интерфейсов.

Параметры Интерфейс Абстрактный класс
Скорость Медленно Быстро
Множественное наследование Реализовать несколько интерфейсов Только один абстрактный класс
Структура Абстрактные методы Абстрактные и конкретные методы
Когда использовать Будущие усовершенствования Чтобы избежать независимости
Наследование/реализация Класс может реализовывать несколько интерфейсов Класс может наследовать только один абстрактный класс
Реализация по умолчанию При добавлении новых вещей в интерфейс найти всех разработчиков и внедрить только что определенные вещи — кошмар. В случае абстрактного класса вы можете воспользоваться реализацией по умолчанию.
Модификаторы доступа У интерфейса нет модификаторов доступа. Все, что определено внутри интерфейса, предполагается публичным модификатором. Абстрактный класс может иметь модификатор доступа.
Когда использовать Лучше использовать интерфейс, когда различные реализации используют только сигнатуру метода. Полиморфная иерархия типов значений. Его следует использовать, когда различные реализации одного типа имеют общее поведение.
Поля данных интерфейс не может содержать поля данных. класс может иметь поля данных.
Множественное наследование по умолчанию Класс может реализовывать множество интерфейсов. Класс наследует только один абстрактный класс.
Реализация Интерфейс является абстрактным, поэтому он не может содержать никакого кода. Абстрактный класс может дать полный код по умолчанию, который следует переопределить.
Использование модификаторов доступа Вы не можете использовать модификаторы доступа для метода, свойств и т. д. Вы можете использовать абстрактный класс, который содержит модификаторы доступа.
Использование Интерфейсы помогают определить периферийные способности класса. Абстрактный класс определяет идентичность класса.
Определенные поля Поля не могут быть определены Абстрактный класс позволяет вам определять как поля, так и константы
Наследование Интерфейс может наследовать несколько интерфейсов, но не может наследовать класс. Абстрактный класс может наследовать класс и несколько интерфейсов.
Конструктор или деструкторы Интерфейс не может объявлять конструкторы или деструкторы. Абстрактный класс может объявлять конструкторы и деструкторы.
Лимит расширений Он может расширить любое количество интерфейсов. Он может расширять только один класс или один абстрактный класс за раз.
Абстрактное ключевое слово В ключевом слове абстрактного интерфейса необязателен для объявления метода как абстрактного. В абстрактном классе ключевое слово abstract является обязательным для объявления метода как абстрактного.
Тип класса Интерфейс может иметь только общедоступные абстрактные методы. Абстрактный класс имеет защищенные и общедоступные абстрактные методы.

Пример кода для интерфейса и абстрактного класса в Java

Ниже приведен пример кода для создания интерфейса и абстрактного класса в Java

Синтаксис интерфейса

interface name{
//methods
}

Пример интерфейса Java:

interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

Синтаксис абстрактного класса

abstract class name{
    // code
}

Пример абстрактного класса:

abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}

java

  1. Сварка справа и сварка слева:в чем разница?
  2. Железо против стали:в чем разница?
  3. Cut vs Wire Nails:в чем разница?
  4. Плазменная и лазерная резка:в чем разница?
  5. Токарный станок и фрезерный станок:в чем разница?
  6. Фрезерование против шлифования:в чем разница?
  7. Абстрактный класс Java и абстрактные методы
  8. Java-интерфейс
  9. Java — абстракция
  10. Java — Интерфейсы