Java >> Tutoriel Java >  >> Tag >> return

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 :30
Publicité

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

Balise Java