Skip to content

Instantly share code, notes, and snippets.

@Guilherme-HRamos
Last active June 30, 2019 20:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Guilherme-HRamos/63d78821a2fe6c868a4f251d80a8dc17 to your computer and use it in GitHub Desktop.
Save Guilherme-HRamos/63d78821a2fe6c868a4f251d80a8dc17 to your computer and use it in GitHub Desktop.
Medium - Android/Java Interfaces like a Boss! - Methods modifiers examples
interface InterfaceMethods {
// Métodos abstratos
// 1.Em classes concretas DEVEM ser sobreescritos (override)
// 2.Em classes abstratas a sobreescrita é opcional
Context getContext();
// Métodos defaults (ou métodos padrões)
// 1.Possuem o modificador "default"
// 2.Possuem corpo
// 3.Não precisam ser sobreescritos
// 4.São utilizados como qualquer outro método da interface
// 5.Podem utilizar outros métodos da mesma interface, inclusive outros defaults
default boolean showToast(String message) {
if (getContext() != null) {
Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
return true;
} else {
logError("Context is null. Message not shown: " + message);
return false;
}
}
// Métodos estáticos
// 1.Possuem o modificador "static"
// 2.Possuem corpo
// 3.Não podem ser sobreescritos
// 4.São utilizados utilizados na forma <InterfaceName>.<staticMethod>, por
// exemplo: InterfaceMethods.logError("Some argument here")
// 5.Podem utilizar apenas outros métodos estáticos
static void logError(String message) {
Log.e("ErrorTag", message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment