0Pricing
Java Academy · Leçon

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

  1. Classes abstraites
  2. Interfaces (introduction et comparaison)
  3. Conversion ascendante/descendante et instanceof
← Retour à Java Academy