class B inherits class A. Now when we create an object of type B, what is the memory allocated for B? Is it including A and B, or any other procedure for memory allocation?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
When you create the object B, let’s say by calling the default constructor
Then the JVM allocates an object with more or less:
The dispatch vector is used by the compiler to store the address of every method that can be invoked on the given object and it depends on the class of the object rather than the instance of the object itself (every object B has the same interface after all!)
So you do NOT need to allocate A, because there’s no separate object A. You aren’t instancing 2 separate objects. When you create B you are creating a “specialized” version of A.. which it can be viewed as A with something more. So only B needs to be allocated (but keep in mind that B also has everything its ancestors have)