Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Exercices JAVA »

Articles similaires

  • Exercice algorithmed e tri par insertion, fusion et rapide (quicksort)
  • Exercices Java - ordre des instructions - Signalez les erreurs - conversion devises
  • Exercice JAVA modularisation - erreurs fréquentes dans les méthodes
  • Tuto convertir un fichier Excel en CSV avec virgule ou point-virgule
  • Exercice affichage et comparaison d'objets - toString, equals
  • Tutoriel Python : notion d’héritage
  • Exercice VB: les Instructions Len, Left, Right, Mid
  • Exercices de base adresse IP, Conversion en binaireet Classes
  • Python : comment programmer les classes
  • Python : comment définir les modules "temps"
  • Comment faire le rapprochement bancaire ?
  • Tutoriel Word : comment ne pas imprimer les commentaires dans un document

Documents similaires

  • All bootstrap classes with description [Eng]

  • Guide complet sur le JavaScript

  • Cours algorithme : Instructions de base et Logique propositionnelle

  • Guide de l’economie : evolution du bien-etre

  • Cours débutant en JavaScript

  • Modèle Excel pour évaluation des risques

  • Application JAVA sur la gestion des magasins

  • Tutoriel Référence de l'API Objective-C

Exercice java abstract et final Trouver les erreurs dans une hiérarchie de classes

Rédigé par GC Team, Publié le 13 Août 2010, Mise à jour le Lundi, 31 Août 2020 20:52
Participez au vote ☆☆☆☆☆★★★★★
But:
Trouver les erreurs dans une hiérarchie de classes
Thème:
abstract, final
Fichiers:
AbstractFinal.java

Le programme AbstractFinal ci-dessous implémente une petite hiérarchie de 4 classes (A, B, C et D). Il y a 2 erreurs dans la méthode main et 1 erreur dans la classe D. Toutes les erreurs sont dûes à une utilisation erronée des modificateurs abstract et final. Expliquez ces erreurs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class AbstractFinal {
    public static void main(String[] args) {
        A x = new A();
        B y = new B();
        C z = new C();
        y.b = 2;
        z.c = 3;
    }
abstract class A {
    int a;
}
class B extends A {
    int b;
}
class C extends A {
    final double c = 1;
}
abstract class D extends A {
    double d;
    int operation(int a) {
        return (a * 2);
    }
    abstract int calcul(int b) {       
    }
    abstract int machin();
}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class AbstractFinal {
    public static void main(String[] args) {
        // Il n'est pas possible d'utiliser new avec une classe abstraite:
        // A x = new A();                // Faux
        B y = new B();                   // OK
        C z = new C();                   // OK
        y.b = 2;                         // OK
        // Il n'est pas possible de modifier une variable finale:
        // z.c = 3;                      // Faux
    }
}
abstract class A {
    int a;
}
class B extends A {   int b;
}
class C extends A {
    final double c = 1;
}
abstract class D extends A {
    double d;
    int operation(int a) {
        return (a * 2);
    }
    // Une méthode abstraite ne peut pas avoir d'instructions ou
    // d'accolades, seulement un point-virgule:
    abstract int calcul(int b);
    // { }                             // Faux    
    abstract int machin();
}
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02