Ключевое слово abstract
в Java имеет особое значение. При описании класса, это ключевое слово указывает, что класс является абстрактным и не может быть инстанцирован - то есть, от него нельзя создать экземпляр напрямую. Так, точное определение ответа на вопрос выглядит следующим образом – "Класс не может быть инстанцирован напрямую".
abstract class Animal {
abstract void sound();
}
class Dog extends Animal {
void sound() {
System.out.println("Bark");
}
}
public class Main {
public static void main(String args[]) {
Dog d = new Dog(); // Создание экземпляра класса Dog
d.sound();
}
}
В приведенном примере кода, Animal
является абстрактным классом и содержит абстрактный метод sound()
. Класс Dog
наследует Animal
и реализует метод sound()
. Обратите внимание, что мы не можем создать экземпляр Animal
, но можем создать экземпляр Dog
, который является подклассом Animal
.
Ключевое слово abstract
важно для реализации наследования и полиморфизма в Java. Оно обеспечивает шаблон, который должны следовать все классы, наследующие абстрактный класс.
Это ключевое слово может также использоваться для объявления абстрактных методов без реализации в абстрактном классе. Эти методы должны быть реализованы в классах-наследниках.
Для лучшей практики в Java, предлагается использовать ключевое слово abstract
только тогда, когда у вас есть класс, которые основывается на общей идее и который не должен быть создан непосредственно, но от которого могут быть производные классы.