Abstract Class in Java
Abstract Class in Java
Abstract Class in Java
A class that is declared with abstract keyword, is known as abstract class. Before learning
abstract class, let's understand the abstraction first.
Abstraction
Abstraction is a process of hiding the implementation details and showing only functionality to
the user.
Another way, it shows only important things to the user and hides the internal details for example
sending sms, you just type the text and send the message. You don't know the internal processing
about the message delivery.
Abstraction lets you focus on what the object does instead of how it does it.
2. Interface (100%)
Abstract class
A class that is declared as abstract is known as abstract class. It needs to be extended and its
method implemented. It cannot be instantiated.
abstract method
A method that is declared as abstract and does not have implementation is known as abstract
method.
In this example, Bike the abstract class that contains only one abstract method run. It
implementation is provided by the Honda class.
3. }
4.
7.
10. obj.run();
11. }
12. }
Output:running safely..
In this example, Shape is the abstract class, its implementation is provided by the Rectangle and
Circle classes. Mostly, we don't know about the implementation class (i.e. hidden to the end user)
and object of the implementation class is provided by the factory method.
A factory method is the method that returns the instance of the class. We will learn about the
factory method later.
In this example, if you create the instance of Rectangle class, draw method of Rectangle class
will be invoked.
3. }
4.
7. }
8.
11. }
12.
17. s.draw();
18. }
19. }
Output:drawing circle
Note: An abstract class can have data member, abstract method, method body, constructor
and even main() method.
5. }
6.
9.
12. obj.run();
13. obj.changeGear();
14. }
15. }
Output:running safely..
gear changed
3. {
4. int limit=30;
5. Bike(){System.out.println("constructor is invoked");}
8. }
9.
12.
15. obj.run();
16. obj.getDetails();
17. System.out.println(obj.limit);
18. }
19. }
Output:constructor is invoked
running safely..
it has two wheels
30
Rule: If there is any abstract method in a class, that class must be abstract.
1. class Bike{
3. }
Rule: If you are extending any abstact class that have abstract method, you must either
provide the implementation of the method or make this class abstract.
The abstract class can also be used to provide some implementation of the interface. In such
case, the end user may not be forced to override all the methods of the interface.
Note: If you are beginner to java, learn interface first and skip this example.
1. interface A{
2. void a();
3. void b();
4. void c();
5. void d();
6. }
7.
10. }
11.
16. }
17.
21. a.a();
22. a.b();
23. a.c();
24. a.d();
25. }}
Output:I am a
I am b
I am c
I am d