Classes abstraites
Déclarez des classes et des méthodes abstraites, comprenez pourquoi elles ne peuvent pas être instanciées et voyez comment les sous-classes complètent la conception.
Classes abstraites est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 3 leçons au total.
Qu'est-ce qu'une classe abstract ?
Classe abstract : elle définit une idée commune et peut laisser certaines méthodes sans corps. Elle peut aussi inclure des méthodes normales avec du code. Imaginez un modèle qui oblige les sous-classes à remplir les blancs.
Code : impossible à instancier
Les classes abstract ne peuvent pas être instanciées directement. Elles peuvent néanmoins contenir des méthodes ordinaires que toutes les sous-classes héritent.
public class Main {
// Abstract class with one abstract method and one concrete method
static abstract class Animal {
abstract void speak(); // must be implemented by subclasses
void info() { // concrete method allowed
System.out.println("I am an animal.");
}
}
public static void main(String[] args) {
// Animal a = new Animal(); // Uncommenting would not compile: cannot instantiate abstract class
System.out.println("You cannot create an Animal directly if it is abstract.");
}
}
Pourquoi utiliser des classes abstract ?
Elles regroupent le code partagé en un seul endroit et obligent chaque sous-classe à fournir les méthodes importantes. Utilisez-les lorsqu'un comportement est commun, mais qu'il varie selon les types concrets.
Code : implémenter une méthode abstract
Les sous-classes doivent implémenter les méthodes abstract. Les méthodes concrètes de la classe abstract sont héritées et réutilisables.
public class Main {
static abstract class Animal {
abstract void speak();
void info() {
System.out.println("I am an animal.");
}
}
static class Dog extends Animal {
// Must implement speak()
void speak() {
System.out.println("Woof!");
}
}
public static void main(String[] args) {
Dog d = new Dog(); // allowed: Dog is concrete
d.info(); // inherited concrete method
d.speak(); // Dog's implementation
}
}
Règles et combinaison
Règles : une classe abstract peut avoir des attributs, des constructeurs et des méthodes concrètes. Une sous-classe ne devient concrète qu'après avoir implémenté toutes les méthodes abstract ; sinon, elle est elle aussi abstract.
Code : abstract et polymorphisme
Les classes abstract s'accordent bien avec le polymorphisme. Le code peut utiliser le type abstract, et chaque sous-classe fournit le comportement approprié.
public class Main {
static abstract class Animal {
abstract void speak();
}
static class Dog extends Animal {
void speak() { System.out.println("Woof!"); }
}
static class Cat extends Animal {
void speak() { System.out.println("Meow!"); }
}
public static void main(String[] args) {
// Polymorphism through abstract base type
Animal[] pets = { new Dog(), new Cat() };
for (int i = 0; i < pets.length; i = i + 1) {
pets[i].speak(); // each subclass provides its own behavior
}
}
}
Vérification des classes abstract
Vérification rapide : quelle affirmation au sujet des classes abstract est correcte ?
Récapitulatif
Récapitulatif : utilisez les classes abstract pour partager du code et imposer des méthodes essentielles. Vous ne pouvez pas les instancier directement, mais les sous-classes complètent le comportement.
Questions Fréquemment Posées
La leçon « Classes abstraites » est-elle gratuite ?
Oui — le texte complet de « Classes abstraites » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Classes abstraites » ?
Déclarez des classes et des méthodes abstraites, comprenez pourquoi elles ne peuvent pas être instanciées et voyez comment les sous-classes complètent la conception. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Java Academy ?
Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.
Combien de temps prend la leçon « Classes abstraites » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?
Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Classes abstraites
- Interfaces (introduction et comparaison)
- Conversion ascendante/descendante et instanceof