Last active
June 30, 2019 20:13
-
-
Save Guilherme-HRamos/63d78821a2fe6c868a4f251d80a8dc17 to your computer and use it in GitHub Desktop.
Medium - Android/Java Interfaces like a Boss! - Methods modifiers examples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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