Why are you repeating the question? I Wayan Saryada already gave you the answer.
The variable 's' is of type Super. That means that if you call a method on it, it will only look in class Super, even when 's' really refers to a Sub object. Because the method is private in class Super, you can't call it on s.
Also, private methods cannot be overridden. A private method is only visible in the class in which it is declared. It is not visible in subclasses. The subclass doesn't know what private methods exist in its superclass, so it can't override private methods in the superclass.
You should see the hello() method in class Sub as a new method that's totally unrelated to the hello() method in class Super.
[ January 03, 2008: Message edited by: Jesper Young ]