Type de retour covariant en Java
Type de retour covariant
Le type de retour covariant est ce type de retour qui peut varier dans la classe parent et enfant (ou sous-classe).
Avant JDK5, Java ne prend pas en charge le type de retour covariant cela signifie (le type de retour parent et le retour enfant doivent être identiques).
À partir de JDK5, Java prend en charge le type de retour covariant cela signifie (le type de retour parent et le retour enfant peuvent varier si nous les définissons).
Le type de retour covariant est utile dans la substitution de méthode lorsque nous redéfinissons une méthode dans la classe dérivée (ou sous-classe), le type de retour peut varier en fonction de JDK (avant le type de retour JDK5 doit être le même et après ou JDK5, nous pouvons considérer que le type de retour peut varier).
Exemple -1
class ParentClass1{ int a=10,b=20; public int sum(){ return a+b; } } class ChildClass1 extends ParentClass1{ int c=30, d=40; public int sum(){ return (c+d); } public static void main(String[] args){ ChildClass1 cc1 = new ChildClass1(); ParentClass1 pc1 = new ParentClass1(); int e = cc1.sum(); int f = pc1.sum(); System.out.println("Child class Sum is :"+e); System.out.println("Parent class Sum is :"+f); } }
Sortie
D:\Java Articles>java ChildClass1 Child class Sum is :70 Parent class Sum is :30Publicité
Exemple -2
class ParentA {} class ChildB extends ParentA {} class Base { ParentA demoA() { System.out.println("Base class demo"); return new ParentA(); } } class Subclass extends Base { ChildB demoB() { System.out.println("Subclass demoB"); return new ChildB(); } } class MainClass { public static void main(String args[]) { Base b = new Base(); b.demoA(); Subclass sub = new Subclass(); sub.demoB(); } }
Sortie
D:\Java Articles>java MainClass Base class demo Subclass demoB