This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
While taking a mock exam, I ran into the following question: Q: Which of the following are true: One of the options was: "A private method can not be overriden and made public." The answer that was given in the exam was that this is a false statement. However, even though it's true that, when overriding methods, you can make them "more public," you can't override a private method, right? If you can't override a private method, you can't override it to make it public, right? Just a quick addition to this question. If class B extends class A, which contains a private member C, is B considered to inherit B from A even though it doesn't have access to it? Thanks, Corey
private methods are not inherited, and thus, cannot be overridden. That does not mean that you can't have a method in the subclass having the same signature than the method in the superclass, but this is not overriding... See this code:
You can have a method in the subclass having the same signature than a private method in the superclass, but overriding does not apply because the private method is not inherited...