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
Post a Comment