UrbanPro

Learn Java Training from the Best Tutors

  • Affordable fees
  • 1-1 or Group class
  • Flexible Timings
  • Verified Tutors

Search in

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

9 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

I am a fresher and I want to become a Java developer, so what is necessary to crack the Java interview ? 

Hi Dipesh, understand that Java is a kind of ocean. It is vast. For interview preparation, you can brush up your Core Java Concepts and OOPs concepts and understand how JAVA works and learn the java features...
Dipesh
What is the use of the "this" keyword in Java?
'this' refer the current instance of a class. You can get and set data members of current object using 'this' prefix inside there class data type.
Deepak
0 0
9
Which language has the best future prospects: Python, Java, or JavaScript?
According to me, "Python" is the programming language having the best future prospect considering the current industry trend. Reason: Python is extensively used in advanced technologies such as Machine...
Atharva
0 0
5
What is the best site to learn Java for development?
www.javatpoint.com Is best site to learn and earn knowledge
Chai
0 0
8

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

Ask a Question

Related Lessons

Java and C trainer
Always think any conspect with real-time example like Object -- object must have states and behaviour then only we will call that thing is Object like fan is Object (rotating,color)

ClassNotFoundException vs NoClassDefFoundError
ClassNotFoundException NoClassDefFoundError It is an exception and happens due to programmer’s mistake and can be recovered by updating the code. Thrown when an application tries...


How 4 byte float can store 8 byte long values in java ?
long l = 12464545L; float f = l; (fine) int i = l ; (Error) if we see the how this magic happens as we know the answer lies in the floating point representation as in floating points values does not...

Definition of Class and Object in Java
Object - Objects have states and behaviors. Example: A dog has states - colour, name, breed as well as behaviors - barking, eating, sleeping. An object is an instance of a class. Class - A class can be...

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
X

Looking for Java Training Classes?

The best tutors for Java Training Classes are on UrbanPro

  • Select the best Tutor
  • Book & Attend a Free Demo
  • Pay and start Learning

Learn Java Training with the Best Tutors

The best Tutors for Java Training Classes are on UrbanPro

This website uses cookies

We use cookies to improve user experience. Choose what cookies you allow us to use. You can read more about our Cookie Policy in our Privacy Policy

Accept All
Decline All

UrbanPro.com is India's largest network of most trusted tutors and institutes. Over 55 lakh students rely on UrbanPro.com, to fulfill their learning requirements across 1,000+ categories. Using UrbanPro.com, parents, and students can compare multiple Tutors and Institutes and choose the one that best suits their requirements. More than 7.5 lakh verified Tutors and Institutes are helping millions of students every day and growing their tutoring business on UrbanPro.com. Whether you are looking for a tutor to learn mathematics, a German language trainer to brush up your German language skills or an institute to upgrade your IT skills, we have got the best selection of Tutors and Training Institutes for you. Read more