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

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.

1234567891011121314151617181920212223242526class 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();}
123456789101112131415161718192021222324252627282930class 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();}
Article publié le 13 Août 2010 Mise à jour le Lundi, 31 Août 2020 20:52 par Salim KHALIL