Junior — Middle
98
Obyekt yönümlü proqramlaşdırmada abstrakt sinif və interfeys necə fərqləndirilir?
AI-dan cavab
sobes.tech Süni İntellekt
Абстрактный класс и интерфейс — оба служат для определения контрактов в ООП, но имеют отличия:
-
Абстрактный класс может содержать как абстрактные методы (без реализации), так и методы с реализацией, а также поля. Класс может наследоваться только от одного абстрактного класса.
-
Интерфейс содержит только объявления методов (в Java 8+ могут быть default-методы с реализацией), не содержит состояния (полей). Класс может реализовывать несколько интерфейсов.
Пример:
abstract class Animal {
abstract void makeSound();
void sleep() {
System.out.println("Sleeping");
}
}
interface Flyable {
void fly();
}
class Bird extends Animal implements Flyable {
void makeSound() {
System.out.println("Chirp");
}
public void fly() {
System.out.println("Flying");
}
}