Jump to content
Fórum Script Brasil
  • 0

Socorro Novamente


arielmoreira
 Share

Question

package javaapplication36;

/**
 *
 * @author fabio
 */
public class Animal {
     
 void andar(){
     System.out.printf("%s"," Estou andando ,sou um animal! " );
 }
}
//outra classe
package javaapplication36;

class Horse extends Animal{
    
   void andar(){
     System.out.printf("%s"," Estou andando sou um cavallo! " );
 }
     void galopar(){
     System.out.printf("%s"," Estou galopando sou um cavallo! " );
 }
    public static void main(String a[]){

        Animal animal=new Horse();//nesse trecho o que realmente esta acontecendo????alguém sabe,no livro diz que animal far uma referencia para objeto Horse ou seja?

        
        Horse cavalo=(Horse)animal;
        cavalo.galopar();
        
    }
}

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
nesse trecho o que realmente esta acontecendo?

Você está instanciando um objeto da classe Horse, mas o está tratando como um objeto da classe Animal. Isso é possível porque Horse é descendente de Animal. Porém, se você tentar usar uma propriedade de Horse que não esteja em Animal, isso vai dar erro.

Exemplo:

class A {
    public void a();
}

class B extends A {
    public void b();
}

A teste1 = new A();
teste1.a();

B teste2 = new B();
teste2.a();
teste2.b();

A teste3 = new B();
teste3.a();
teste3.b(); // Erro!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...