I have two classes: Dogand Beaglethat extend Dog.
class Dog {
protected String bark() {return "woof "; }
}
class Beagle extends Dog {
private String bark() { return "arf "; }
}
class Test {
public static void main(String args[]) {
Dog[] dogs = {new Dog(), new Beagle()};
for(Dog d : dogs)
System.out.print(d.bark());
}
}
When I use some other editor, and not Eclipse, it does not even compile this code. I get this error:
An attempt to assign weaker permissions to the bark () method in the Beagle class.
You can also see this behavior here .
If I use Eclipse Indigo (Version: 3.7.2), this code compiles fine, and the output: woof woof.
Please let me know which one is correct and why?
Thanks in advance!
source
share