Inheritance concept in Java -
this question has answer here:
this rather basic question. can't understand concept of inheritance.
suppose have 2 classes, , b both have test()
method returned 1
, 2
respectively, , b inherited class. in main method declare instance such;
a a1 = new b();
and call method a1.test()
, return 2
. concept of polymorphism. when have method test2()
in subclass, can't call method using same instance declaration above. why happen?
i can't call method using same instance declaration above. why happen?
because type of variable a
, , class a
not have method test2()
. java compiler looks @ type of variable check if can call method, not @ actual object (which in case b
).
this easier understand if use more concrete , meaningful names classes, instead of abstract names such a
, b
. let's call them animal
, bear
instead:
class animal { } class bear extends animal { public void growl() { ... } } class cat extends animal { public void meow() { ... } } animal a1 = new bear(); animal a2 = new cat(); // doesn't work, because not every animal bear, , not // animals can growl. a1.growl(); // wouldn't expect work, because a2 cat. a2.growl();
Comments
Post a Comment