Etudier Java 8 (méthode StaticIF et Default)

C'est mon premier message, il est donc facile de s'y habituer. Même si Java 9 est sorti, je pense que c'est Java 8 maintenant.

Tout d'abord, créez un IF avec StaticIF et la méthode par défaut.

package java8.staticIfAndDefaultIf;

/**
 *Pour tester StaticIF et les méthodes par défaut (étude de Java8)
 * @author komikcomik
 *
 */
public interface StaticIF {

	/**C'est la méthode par défaut*/
	public default void helloDefault() {
		System.out.println("hello Default");
	}

	/**C'est une méthode normale*/
	public void hello();

	/**Méthode statique*/
	public static void helloStatic() {
		System.out.println("hello static");
	}

}

Eh bien, il semble que les méthodes statiques puissent maintenant être implémentées dans IF comme ceci. Ce qui suit est l'implémentation de l'interface IF statique ci-dessus.

package java8.staticIfAndDefaultIf;

/**
 *Classe d'implémentation StaticIF.
 * @author komikcomik
 *
 */
public class StaticIFImpl implements StaticIF{

	@Override
	public void hello() {
		System.out.println("hello in Impl");
	}

}

Au fait, un autre. Cela a remplacé la méthode par défaut.

package java8.staticIfAndDefaultIf;

/**
 *Classe d'implémentation StaticIF.
 *Cela a remplacé la méthode par défaut.
 * @author komikcomik
 *
 */
public class StaticIFImplDefaultOverride implements StaticIF {
	@Override
	public void hello() {
		System.out.println("hello in ImplDefaultOverride");
	}

	public void helloDefault() {
		System.out.println("override default");

	}
}

Enfin, j'ai créé une classe pour appeler ces deux classes.

package java8.staticIfAndDefaultIf;

/**
 *Une personne qui appelle deux classes qui implémentent StaticIF.
 * @author komikcomik
 *
 */
public class StaticIFCaller {

	public static void main(String[] args) {
		StaticIF staticIF = new StaticIFImpl();
		staticIF.hello(); //Il en ressort qu'il a été implémenté avec StaticIFImpl.
		staticIF.helloDefault(); //La méthode staticIF dafault s'affiche.
		StaticIF.helloStatic(); //La méthode statique de StaticIF apparaît.

		StaticIF staticIF2 = new StaticIFImplDefaultOverride();
		staticIF2.hello(); //Il en ressort qu'il a été implémenté avec StaticIFImplDefaultOverride
		staticIF2.helloDefault(); //Le contenu de StaticIF a été remplacé et implémenté avec StaticIFImplDefaultOverride.

	}
}

Voici le résultat de l'exécution. C'est comme prévu.

hello in Impl
hello Default
hello static
hello in ImplDefaultOverride
override default

N'est-il pas possible que la méthode par défaut ne puisse pas être utilisée dans le cas où tout le même traitement est écrit à contrecœur dans une sous-classe qui hérite de IF? StaticIF ne semble pas très utile.

Recommended Posts

Etudier Java 8 (méthode StaticIF et Default)
[Java] Classe générique et méthode générique
Méthodes Java et surcharges de méthodes
Méthodes et classes abstraites Java
Étudier Java ―― 3
À propos des méthodes Java statiques et non statiques
Étudier Java ―― 9
Méthodes Java
Étudier Java ―― 4
Étudier Java ―― 1
Méthodes Java
Étudier Java ―― 8
Étudier Java ②
Java Generics (définit les classes et les méthodes)
Étudier Java ―― 7
Etudier Java 8 (String Joiner et Join)
Étudier Java ―― 2
Étudier Java ①
Étudier java9 (dropWhile, takeWhile et Stream.ofNullable)
Étudier Java -10
Programmation Java (classes et instances, méthodes principales)
Cours et méthodes abstraits d'histoire d'apprentissage JAVA
Méthodes de classe Java
Étudier Java 8 (facultatif)
Fonctions et méthodes
Étudier java9 (jShell)
Java et JavaScript
XXE et Java
Étudier Java 8 (Stream)
Vérifier le comportement statique et public dans les méthodes Java
Mélanger les cas de test avec JUnit 5 et les méthodes par défaut
Comment accéder aux méthodes et champs Java Private
Getter et Setter (Java)
Etudier Java 8 (Collector / Collectors)
[Java] Thread et exécutable
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Etudier Java 8 (voir méthode)
Etudier Java 8 (voir constructeur)
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
Étudier Java ~ Partie 8 ~ Cast
timedatectl et Java TimeZone
[Java] Branchement et répétition
Etudier Java 8 (expression lambda)
[Java] Types de variables et types
java (classe et instance)
[Java] Surcharge et remplacement
Définir des méthodes abstraites dans l'énumération Java et écrire leur comportement
Pensez aux différences entre les fonctions et les méthodes (en Java)
Etudier Java # 2 (\ marque et opérateur)
Java version 8 et fonctionnalités ultérieures
[Java] Différence entre == et égal
[Java] Zone de pile et zone statique
(Remarque) Classes / variables / méthodes Java
Programmation Java (variables et données)
Cryptage et décryptage Java PDF
chemins de rails et méthodes d'URL
Vérifier la méthode privée de l'interface Java9
Définition et instanciation de classe Java