Wrong. You cannot declare
abstract
methods in nonabstract
classes.Wrong. You can have
protected
or package-localabstract
methods as well.
There is one special rule about interfaces: methods in interfaces are always public abstract
. It is redundant to specify any of these modifiers when defining an interface:
public interface Foo
{
/* public abstract is implied here */ void bar();
}