On utilise un classe abstraite quand
1) on veux exprimer que ça n'a aucun sens d'instancier directement la classe (c'est une choix)
2) quand on fait une implémentation partielle (c'est nécessaire)
Exemple, un système de gestion de fichier virtuels
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public abstract class AbstractFile {
public void faireCopie(AbstractFile source) {
if (!source.exist()) {
throw new FileMissingException();
}
if (!exist()){
OutputStream os = getOutputStream();
IOUtils.copyStream(source.getInputStream());
os.close();
} else {
throw new FileAlreadyExistException();
}
}
public abstract InputStream getInputStream();
public abstract OutputStream getOutputStream();
public abstract boolean exist();
} |
Et dans ton code
new SSHFile("monserveur","monuser,"monpass","/home/tartempion/data.txt").faireCopie(new HTTPFile("http://www.monserveur.com/log/data.txt));
Partager