Can you use abstract and final both with a method? Why?

Asked by Last Modified  

34 Answers

Learn Java

Follow 3
Answer

Please enter your answer

Trainer

No because we have to provide an abstract method with implementation in the subclass (the child class of the parent class in which the abstract method was declared). And for providing this implementation the abstract method has to be overridden in the child class. Since final methods cannot be overridden...
read more
No because we have to provide an abstract method with implementation in the subclass (the child class of the parent class in which the abstract method was declared). And for providing this implementation the abstract method has to be overridden in the child class. Since final methods cannot be overridden so we can't declare a method both abstract and final as by doing so you won't be able to implement the method in the child class as it was declared both final and abstract in the parent class. read less
Comments

Experienced Java Professional

No, we can not declare abstract method as final. We have to proved implementation to abstract methods in subclasses. and method declared as final mean don't override (or redefine) this method. So the abstract and final combination is contradicting with each other.
Comments

Short Answer: No. Long Answer: Let's take a closer look at both keywords separately and try to understand their purpose before understanding the Why part of the question. An abstract method is a common behavior for which, each subclass will provide its own concrete implementation (or Override the abstract...
read more
Short Answer: No. Long Answer: Let's take a closer look at both keywords separately and try to understand their purpose before understanding the Why part of the question. An abstract method is a common behavior for which, each subclass will provide its own concrete implementation (or Override the abstract method). For example, consider an abstract class called Shape having an abstract method called getArea(). The abstract method doesn't know exactly how the area of the underlying shape will be calculated. But it just knows that each subclass of Shape needs to have a getArea() method. The concrete classes will decide how to compute the area. That is, the getArea() method inside Circle class will return area based on radius; while Rectangle class will return area based on length and breath. Similarly, other sub-classes will have their own concrete implementations. Now , coming to final keyword. If a method is declared as final, then it implies that this is the final implementation of this method and its behavior should not be modified at runtime by any subclass. If a method is declared as final, it cannot be Overriden by any subclass. For example, consider the abstract class House with methods getWindowCount() and getDoorCount(). Now, irrespective of the type of house (i.e. villa, appartment, bunglow, etc.), the concrete implementation of the above mentioned methods is not going to change. Hence, we can declare these methods as final and provide a concrete implementation in the House class itself. Since, you don't want someone to accidentally change the behavior of counting the number of windows and doors in the house based on its type. Conclusion: There are separate design considerations while choosing between the keywords abstract and final. When used on a method, they have completely opposite purposes. And since, there purpose are so opposite to each other (abstract methods mean provide implementation in sub-classes; while final methods mean DO NOT provide implementation in sub-classes), hence, it doesn't make sense to use them together on a single method. This is the reason, why Java compiler doesn't allow the usage of abstract and final keywords on a method. It throws a compile time error "illegal combination of modifiers: abstract and final". read less
Comments

10 years of Hadoop Spark Expertise

We should not write, because abstract meaning is partially implemented, so some one has to implement that, if we create that as final then we cant change that further.
Comments

More than 12 years of experience in IT Industry including Science/Computer teaching

No, Abstract method cannot be declared as final. This is because, abstract method has to be overridden to provide implementation. If it is declared as final, it cannot be overridden.
Comments

Java Trainer

No, Abstract is meant to be overridden in subclass so it wont have method body and final means it cannot be overridden in subclass and method body needs to be provided.
Comments

IT Professional Trainer with 13 years of experience in IT industry + Academics

Nope..... Because abstract methods are needed to be defined in the subclass..So you can't have abstract final method because then after you can not define it
Comments

Trainer

No, because we have to provide the implementation to methods in subclasses.
Comments

Experienced Software Professional

No. This is so because an abstract method is there for implementation. Putting a final is illegal. A Final method needs to have a body or implementation. Final restricts further overriding of the method in any derived class.
Comments

Computer Classes

No, we can not declare abstract method as final. We have to proved implementation to abstract methods in subclasses.
Comments

View 32 more Answers

Related Questions

When we are used the compiler and interpreter? what is the difference between them?
compiler compiles whole page or file at one time but interpreter executes line by line like we do using debugger
Shilpa
What are the advantages of learning Java?
Dear Niteen Java is one of the most widest implemented technology for programming. Not only its used to develop full fledged Software Applications, but its also used for programming devices like Set...
Niteen
0 0
6
What is IBM RAD(Rational Application Developer)?
RAD means Rational Application Developer for WebSphere Software accelerates the development and deployment of Java, Java EE, Web 2.0, mobile, OSGi, portal and service-oriented architecture (SOA) applications....
Ashish
Is it possible to learn java at home without coaching in one month?
It all depends on you. If you are already aware of programming then it is definetly possible to learn java at home. But if learn through a tutor then you can learn easily.
Pritom
0 0
5

Now ask question in any of the 1000+ Categories, and get Answers from Tutors and Trainers on UrbanPro.com

Ask a Question

Related Lessons

Why Should We Learn Java Language?
Most of starters has confusion today that which of the programming language should be chosen to work on. It totally depends upon your need. As per my opinion, if you want to grow your career in IT industry...

Implementation: What Is JPA And JPA?
The basic Java framework to access the database is JDBC. Unfortunately, with JDBC, a lot of hand work is needed to convert a database query result into Java classes. JPA allows us to work with Java classes...

Java8 Filters and collectors
Lets say we have collection of strings and we would like to filter (remove) out certain strings from collection. We could achive the same in java 7 and earlier versions import java.util.ArrayList; import...

Try to clear up the basics, if basics are clear then you can go ahead with any difficult problem
Hey guys, To all the students i just want to convey that just clear up your basics so that they can help you solve anyu problem and you would achieve a great success. Regards, Ishani Chakraborty

Java 8 Predicates
In the previous lession, we have learnt how to use filters and collectors. In filter we have passed the condition to evaluate whether the object is eligible to be filtered or not. Code given below for...

Recommended Articles

Designed in a flexible and user-friendly demeanor, Java is the most commonly used programming language for the creation of web applications and platform. It allows developers to “write once, run anywhere” (WORA). It is general-purpose, a high-level programming language developed by Sun Microsystem. Initially known as an...

Read full article >

Before we start on the importance of learning JavaScript, let’s start with a short introduction on the topic. JavaScript is the most popular programming language in the world, precisely it is the language - for Computers, the Web, Servers, Smart Phone, Laptops, Mobiles, Tablets and more. And if you are a beginner or planning...

Read full article >

Java is the most commonly used popular programming language for the creation of web applications and platform today. Integrated Cloud Applications and Platform Services Oracle says, “Java developers worldwide has over 9 million and runs approximately 3 billion mobile phones”.  Right from its first implication as java 1.0...

Read full article >

Java is the most famous programming language till date. 20 years is a big time for any programming language to survive and gain strength. Java has been proved to be one of the most reliable programming languages for networked computers. source:techcentral.com Java was developed to pertain over the Internet. Over...

Read full article >

Looking for Java Training Classes?

Learn from the Best Tutors on UrbanPro

Are you a Tutor or Training Institute?

Join UrbanPro Today to find students near you