java - Polymorphism - access specifier changed in derived class -


hi wanted undertand following behavior.. have defined same method - gg() in base , derived class different access

class base   {   // thing    **private** integer gg(){    //return     }   }  class derived{   //   **public** integer gg(){   //return   }   } 

in main method when initialize variable

  base d = new derived()   

and attempt call d.gg() says base.gg() private. modifying access specifier make method calls revert base class method?. when change access specifer of gg() in base class public, calls method in derived class polymorphism should.

from read polymorphism, ok make access specifier less restrictive in derived class case here .

accessing object through reference-to-base-class means intend access via interface specified base class. if you've declared method private in base class, can't access via reference-to-base!

consider absurdity ensue if weren't case:

base b;  if (some condition) {     b = new base(); } else {     b = new derived(); }  b.ggg();  // ok, or not? 

Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -