java- objet polymorphes

Polymorphisme est un concept très important dans orienté objet, l'objet multi-états principalement dans deux aspects:

  • méthode surchargée override
  • objet polymorphisme

objets Polymorphisme sont divisés en deux types:

  • Upcast: objet sous-classe - l'objet de la classe parent
  • Abattu: l'objet parent - objet sous-classe

Objet transition vers le haut, le programme automatiquement. Abattu sous - classe doit spécifier explicitement le type de transition. Le format est le suivant:
Objet upcast: 父类 父类对象 = 子类实例;
Objet baissés: 子类 子类对象 = (子类)父类实例;
Cas upcast Objet: La
définition de la classe parente:

public class Father {

    public void fun1(){
        System.out.println("father`s method fun1");
    }
    public void fun2(){
        System.out.println("father's method fun2");
    }
}

sous-classe définie

public class Son extends Father {

    @Override
    public void fun1() {
        System.out.println("son's method fun1 ");
    }
    public void fun3(){
        System.out.println("son's method fun3");
    }
}

Test de transition vers le haut

    @Test
    public void test() {
        Son son = new Son();
        Father father = son;
        father.fun1();
    }

résultat du test:

La méthode de fils fun1
Analyse:
Bien que les appels de méthode Fun1 père, mais appelle en fait fun1 pour les sous - classes. C'est, lorsque l'objet après la transition se produit, appelez la méthode doit être remplacée par les sous - classes. Mais le père ne définit pas les méthodes fils d'appel de classe fun3. Si vous voulez la méthode mise au point de fun3, il y a des cas de sous - classes doivent être appelés.

Objet baissés:
ou utiliser les cas de test ci - dessus:

    @Test
    public void test2() {
        Father father = new Son(); //向上转型
        Son son = (Son) father;  //向下转型
        son.fun1();
        son.fun2();
        son.fun3();
    }

résultat:

méthode fun1 de fils
méthode de père fun2
méthode de fils de fun3

Une chose à noter est: le moût de première transformation baissés avant.

Publié 22 articles originaux · louange 9 won · vues 30000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_19408473/article/details/71194358
conseillé
Classement