class A{
m2(){
}
}
class B extends A{
m2(){
}
}
class c extends B{
m2(){
}
}
class my_class extends c{
m2(){
}
pulic static void main(){
...My_class a = new my_class();
super.super.super.m2(); is this is leagal
if not find what is the legal procedure in order to call A's
version of m2();
}
Answer Posted / ranganathkini
No it is illegal to call:
super.super.super.m2();
If the implementation of m2() defined by class A has to be
called from within my_class's implementation of m2(), the
following change must can be made:
class A {
public void m2() {
// call the protected implementation
m2Impl();
}
// a protected implementation of A's m2() method
// giving the implementation a protected access
// allows only subclasses to see the method
// and remains inaccessible to the rest of the world
protected void m2Impl() {
System.out.println( "A.m2() invoked" );
}
}
class B extends A {
public void m2() {
System.out.println( "B.m2() invoked" );
}
}
class C extends B {
public void m2() {
System.out.println( "C.m2() invoked" );
}
}
class my_class extends C {
public void m2() {
// call A's protected implementation
m2Impl();
}
}
public class TestSuperSuper {
public static void main( String[] args ) {
my_class mc = new my_class();
mc.m2();
}
}
Hope it helps! :-)
Is This Answer Correct ? | 10 Yes | 2 No |
Post New Answer View All Answers
What is a numeric literal?
What are the advantages of java inner classes?
What does n mean?
What is the use of join method?
Why local variables are stored in stack?
What is the difference between logical data independence and physical data independence?
Can we create an object of private class?
What are the features in java?
What is an empty class? What functionality does it offer in Java?
Why is whitespace important?
What is the use of arraylist in java?
What is the major difference between linkedlist and arraylist?
Can each java object keep track of all the threads that want to exclusively access it?
What is natural ordering in java?
What is meant by data hiding in java?