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

What is a complete list of topics of Core Java and topics of Advanced Java?
Core Java : Class ,Object,JVM,Thread,Interface,Exception,static ,Final . Advance Java : Collection,Collection Framework,JDBC,Servlet,Jsp
Chandramami
0 0
5
My name is Rajesh , working as a Recruiter from past 6 years and thought to change my career into software (development / admin/ testing ) am seeking for some suggestion which technology I need to learn ? Any job after training ? Or where I can get job within 3 months after finishing my training programme- your advices are highly appreciated
Mr rajesh if you want to enter in to software Choose SAP BW AND SAP HANA because BW and HANA rules the all other erp tools next 50 years.it provides rubust reporting tools for quicker decesion of business It very easy to learn
Rajesh
1 0
6
Why using Overriding in Java ?
There was a student who always pronounces "University" as "Univerkity". His teacher got angry and called the parents and asked to know the reason. Teacher got shocked as they are pronouncing "Capacity"...
Shivendra
What are different IDEs available to write programs?
There are many IDE for programming like TurboC++,Dev C++ for C and C++ programming. Eclipse,Notepad++,Dreamweaver for HTML,PHP,JAVA,ASP etc languages.
Meraj
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

Class and Objects in Java
Class is a template or a blueprint which is used to describe an object. On other hand Object is a reference of a class which follows all the stuff written inside the class. How about taking the whole tour in the following video

Object Oriented Programming Concepts :
Class : Class is user defined data type. Class is a logical representation of an Object. That means Class is used to define an object, how you want to create your software object. For Example...

Mastering in Java Programming
Core java topics What is Java?Execution Model Of JavaBytecodeHow to Get Java?A First Java ProgramCompiling and Interpreting ApplicationsThe JDK Directory StructureUsing Eclipse Data types and Variables What...

Differences Between HashMap vs HashSet In Java.
HashSet HashMap HashSet implements Set interface. HashMap implements Map interface. HashSet stores the data as objects. HashMap stores the data as key-value pairs. HashSet...

1.3. Find the second largest element in an array.
public class Main { public static void main(String args) { int arr = {1, 3, 4, 6, 5}; int max = Integer.MIN_VALUE, secondMax = Integer.MIN_VALUE; for (int i = 0; i < arr.length; i++) { if (arr >...

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