-------------Code----------------------------------------------------
package bindaas1;
public class Animal {
protected void eat() {
System.out.println("Animals prefer idali vada");
}
}
package bindaas2;
import bindaas1.Animal;
class Dog extends Animal {
}
public class Beagal extends Dog{
public static void main(
String ... args) {
Dog d1 = new Beagal(); // Line 1
d1.eat();// Line 2
((Beagal)d1)).eat(); // Wroks ??? - Line 3
}
}
-----------------------------------------------------------
in the above code Line 2 does not compile. This is fine as eat() method is protected and available only in child class Dog. But Why Line 3 compiles fine ? d1 is casted int Beagal. But protected is not visible below one child level. Then how it compiles ?
Thanks in advance.
[ March 17, 2007: Message edited by: Ramesh J ]