Абстрактный класс — это своего рода образец для других классов. Вы не можете создать объект непосредственно из абстрактного класса. Вместо этого вы используете его как основу для других классов, которые могут опираться на него и дополнять детали.
Абстрактные классы полезны, когда вы хотите определить общую концепцию, имеющую некоторые общие функции, но вы также хотите оставить место для конкретных деталей, которые могут различаться в разных ситуациях. Например, у вас может быть общее понятие «Животное», которое включает в себя общие черты, такие как еда или сон, но разные животные могут есть или спать по-разному.
Вот как можно создать абстрактный класс под названием Animal:
public abstract class Animal { abstract void makeSound(); // Abstract method, no body void sleep() { System.out.println("This animal sleeps."); } }
В этом примере makeSound() — абстрактный метод, то есть у него еще нет тела. Однако метод Sleep() полностью реализован.
Теперь давайте создадим несколько классов, расширяющих класс Animal:
public class Dog extends Animal { void makeSound() { System.out.println("The dog barks."); } } public class Cat extends Animal { void makeSound() { System.out.println("The cat meows."); } }
Оба класса Dog и Cat должны предоставлять свою собственную версию метода makeSound(), но они наследуют метод Sleep() как есть.
Абстрактный класс удобен, когда у вас есть методы, которые должны использоваться всеми дочерними классами, но вы также хотите, чтобы некоторые методы были определены этими дочерними классами.
public abstract class Bird extends Animal { void move() { System.out.println("The bird flies."); } }
Теперь любой класс, расширяющий Bird, будет наследовать как метод move(), так и метод Sleep() от Animal, но ему все равно необходимо реализовать makeSound().
Абстрактные классы в Java позволяют создать общую основу для связанных классов, оставляя этим классам место для определения конкретных деталей. Они обеспечивают баланс между общей функциональностью и гибкостью, делая ваш код одновременно мощным и пригодным для повторного использования.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3