Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

memory allocation for upcasting in java

Considering these classes:

public class Animal{

}

public class Dog extends Animal{

}

public AnimalTest(){
    public static void main(String[] args){
       Dog d = new Dog();
       Animal a = d;
   }
}

my question is since I performed an upcasting on Animal a = d;does it consume a new memory allocation on the machine or does it use the memory allocated to the Dog d = new Dog();

like image 519
anathema Avatar asked Oct 23 '25 22:10

anathema


1 Answers

The Actual object or its memory footprint is not affected. just a new reference to the object is created. The only difference is that the reference a can only call methods or access attributes that was available in the Super Class Animal.

like image 144
rogue-one Avatar answered Oct 26 '25 12:10

rogue-one



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!