Page 1 of 1

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Wed Sep 26, 2012 4:53 pm
by Enrique
Then if it comment line //3, only show 10 and 40. ?

King regards

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Wed Sep 26, 2012 5:37 pm
by admin
Enrique wrote:Then if it comment line //3, only show 10 and 40. ?

King regards
If you comment only line //3, it will not compile.
HTH,
Paul.

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Sun Jul 07, 2013 10:05 am
by Loerti
Very good question.
But i believe it's called hiding. I.e. B.i hides A.i. So A.i not inherited by B and therefore not inherited by C.

Best regards
Max

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Sun Dec 28, 2014 1:17 am
by coder007
Loerti wrote: But i believe it's called hiding.
Hiding or shadowing, both are correct.

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Sun Mar 01, 2015 5:43 pm
by dmcinnis1
After reading all of the comments I still don't understand why c can't directly access i in A. If c doesn't inherit i from B because it's private, then why can't c inherit and directly access i in A; i.e., c.i?

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Sun Mar 01, 2015 5:48 pm
by admin
That is just how the language is designed. You can access A's i but you have to do ( (A)c).i

HTH,
Paul.

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Sun Mar 01, 2015 5:49 pm
by admin
Loerti wrote:Very good question.
But i believe it's called hiding. I.e. B.i hides A.i. So A.i not inherited by B and therefore not inherited by C.

Best regards
Max
You are right. It is technically "hiding", not shadowing.
thank you for your feedback!

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Mon Mar 02, 2015 4:11 pm
by __Bill
Why will this not compile if //2 is commented out?

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Mon Mar 02, 2015 9:22 pm
by admin
As the explanation says, "You cannot access c.j because j is private in A."

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Tue Mar 03, 2015 12:16 am
by __Bill
admin wrote:As the explanation says, "You cannot access c.j because j is private in A."
//2 is c.i not c.j. A wrong answer is " It will compile if //2 is commented. " :) Maybe you mean UNcommented? Pretty sure something is messed up in there. Check it out.

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Tue Mar 03, 2015 12:35 am
by admin
No, it is correct. If you comment out //2, line marked //3 i.e. c.j will still be there and that won't compile.

Re: About Question enthuware.ocajp.i.v7.2.1015 :

Posted: Tue Mar 03, 2015 12:49 pm
by __Bill
Ok, I get it. It will compile if //2 is commented out, yet that won't fix the problem that keeps it from compiling...
If you wanted to be clearer you could change that answer to read "commenting //2 will allow it to compile."