Can an abstract class be final?
Answers were Sorted based on User's Feedback
Answer / ranganathkini
No a class cannot be marked "abstract" as well as "final".
Marking a class "abstract" means it contains partial
implementation of methods and hence depends on its
subclasses to provide concrete implementation.
Marking the class "final" means that no other class can
extend it and hence abstract classes cannot be marked final.
| Is This Answer Correct ? | 173 Yes | 15 No |
Answer / sekhar
No We can't do that.Because abstract means We compulsory
subclass it.Once we declare a final we can't sub class
that so that we can't do that.
| Is This Answer Correct ? | 64 Yes | 12 No |
Answer / ravikiran(aptech mumbai)
no because the purpose of using both are opposite to each
other,An abtract class must have to get instantiated to
become concrete,where as final class should nn't get subclassed
| Is This Answer Correct ? | 31 Yes | 6 No |
Answer / raghav
An abstract class is of no use if it cannot be sub classed
because instances of an abstract class cannot be created.
Moreover a class declaration with abstract and final will
not compile at all and when ever a class is marked final,the
properties cannot be extended
| Is This Answer Correct ? | 21 Yes | 5 No |
Answer / sudhakar goud
we can't write why because abstract class says it should be
overridden in subclass but where as final class says it
can't be overridden
| Is This Answer Correct ? | 13 Yes | 2 No |
Answer / huang
http://java.sun.com/javase/6/docs/jre/api/javaws/jnlp/index.html
The documentation says that
"This class is abstract and final and cannot be instantiated."
for ServiceManager class.
Anyways, the class is not marked as abstract.
| Is This Answer Correct ? | 15 Yes | 6 No |
Answer / sudhakar goud
Ans: we can't write both final and abstract
because the abstract say's taht it has to be overridden
where as final say's that it can't be overridden.
That is the reason we can't write both final and abstract
| Is This Answer Correct ? | 12 Yes | 4 No |
Answer / yuvaraj
No.Because abstract means We compulsory
subclass it.Once we declare a final we can't sub class
that so that we can't do that.
| Is This Answer Correct ? | 7 Yes | 5 No |
Answer / artavazd amirkhanyan
It's good question because of most of people can't explain why we can't have abstract final classes in Java. Most of them says "An abstract class is of no use if it cannot be extended or instantiated". Imagine class where we have 10 static methods and we want them to be final to never be overridden. Now, because of class have only static methods,we can make it abstract and because of restriction on overriding, we can make it final. So abstract final classes can be very useful in aforementioned cases. But we can't have abstract final classes in Java just stupidly because of Java do not let us. And this is one of many silly restrictions of Java.
| Is This Answer Correct ? | 3 Yes | 2 No |
Why arraylist is not synchronized in java example?
What is java oops?
Tell me the programme for this @ 1 2 @ @ @ 1 2 3 4
5 Answers Accenture, iGate, IntoNET, Value Labs,
using equals method overriding which objects are compared?i.e same class objects or other class objects?Explain me.
Can we overload the constructors?
What is immutability in java?
What are the classes of java?
Difference between prefix and postfix forms of the ++operator?
What is difference between fail-fast and fail-safe?
long d =10;int i =0;i=d; /// is this possible? If d is very long number (10 digits or some thing) then?
What is the major drawback of internal iteration over external iteration?
How will you add panel to a frame?