Qu'est-ce qu'une "classe abstraite" en Java ?
Réponses
Trop de publicités?Obtenez vos réponses ici :
Classe abstraite et interface en Java
Une classe abstraite peut-elle avoir une méthode finale ?
BTW - ce sont les questions que vous avez posées récemment. Pensez à une nouvelle question pour construire votre réputation...
Edit :
Je viens de me rendre compte que les auteurs de cette question et de celles qui y font référence ont le même nom ou du moins un nom similaire, mais que l'identifiant est toujours différent. Donc, soit il y a un problème technique qui fait que Keyur a du mal à se reconnecter et à trouver les réponses à ses questions, soit il s'agit d'une sorte de jeu pour divertir la communauté de l'OS ;)
De l'oracle documentation
Méthodes et classes abstraites :
Une classe abstraite est une classe qui est déclarée abstraite - elle peut inclure ou non des méthodes abstraites.
Les classes abstraites ne peuvent pas être instanciées, mais elles peuvent être sous-classées.
Une méthode abstraite est une méthode qui est déclarée sans implémentation (sans accolades, et suivie d'un point-virgule), comme ça :
abstract void moveTo(double deltaX, double deltaY);
Si une classe comprend des méthodes abstraites, la classe elle-même doit être déclarée abstraite, comme dans :
public abstract class GraphicObject {
// declare fields
// declare nonabstract methods
abstract void draw();
}
Lorsqu'une classe abstraite est sous-classée, la sous-classe fournit généralement des implémentations pour toutes les méthodes abstraites de sa classe mère. Toutefois, si ce n'est pas le cas, la sous-classe doit également être déclarée abstraite. .
Depuis abstract classes
y interfaces
sont liées, jetez un coup d'œil aux questions SE ci-dessous :
Quelle est la différence entre une interface et une classe abstraite ?
Comment aurais-je dû expliquer la différence entre une interface et une classe abstraite ?
Jetez un coup d'oeil à ça :
http://java.sun.com/docs/books/tutorial/java/IandI/abstract.html
Solution - classe de base (abstraite)
public abstract class Place {
String Name;
String Postcode;
String County;
String Area;
Place () {
}
public static Place make(String Incoming) {
if (Incoming.length() < 61) return (null);
String Name = (Incoming.substring(4,26)).trim();
String County = (Incoming.substring(27,48)).trim();
String Postcode = (Incoming.substring(48,61)).trim();
String Area = (Incoming.substring(61)).trim();
Place created;
if (Name.equalsIgnoreCase(Area)) {
created = new Area(Area,County,Postcode);
} else {
created = new District(Name,County,Postcode,Area);
}
return (created);
}
public String getName() {
return (Name);
}
public String getPostcode() {
return (Postcode);
}
public String getCounty() {
return (County);
}
public abstract String getArea();
}
Petit complément à tous ces posts.
Parfois, on peut vouloir déclarer un mais ne pas savoir comment définir toutes les méthodes qui appartiennent à cette cette classe. Par exemple, on peut vouloir déclarer une classe appelée Écrivain et inclure une méthode membre appelée écrire() . Cependant, vous ne savez pas comment coder écrire() car elle est différent pour chaque type de Writer d'appareils. Bien sûr, vous prévoyez de gérer ceci en dérivant des sous-classes de Writer, comme Imprimante, Disque, Réseau et Console.