A class that is declared using the abstract keyword is known as abstract class. Abstraction is a process of hiding the data implementation details, and showing only functionality to the user. Abstraction lets you focus on what the does instead of how it does it.
Main things of abstract class
An abstract class may or may not contain abstract methods.There can be non abstract methods.
An abstract method is a method that is declared without an implementation (without braces, and followed by a semicolon), like this:
ex : abstract void moveTo(double deltaX, double deltaY);
If a class has at least one abstract method then that class must be abstract
Abstract classes may not be instantiated (You are not allowed to create of Abstract class)
To use an abstract class, you have to inherit it from another class. Provide implementations to all the abstract methods in it.
If you inherit an abstract class, you have to provide implementations to all the abstract methods in it.
Declare abstract class Specifying abstract keyword before the class during declaration makes it abstract. Have a look at the code below:
abstract class AbstractDemo{ }
Declare abstract method Specifying abstract keyword before the method during declaration makes it abstract. Have a look at the code below,
abstract void moveTo();//no body
Why we need to abstract classes
In an -oriented drawing application, you can draw circles, rectangles, lines, Bezier curves, and many other graphic s. These s all have certain states (for ex -: position, orientation, line color, fill color) and behaviors (for ex -: moveTo, rotate, resize, draw) in common. Some of these states and behaviors are the same for all graphic s (for ex : fill color, position, and moveTo). Others require different implementation(for ex: resize or draw). All graphic s must be able to draw or resize themselves, they just differ in how they do it.
This is a perfect situation for an abstract superclass. You can take advantage of the similarities, and declare all the graphic s to inherit from the same abstract parent (for ex : Graphic ) as shown in the following figure. enter image de ion here
First, you declare an abstract class, Graphic , to provide member variables and methods that are wholly shared by all subclasses, such as the current position and the moveTo method. Graphic also declared abstract methods, such as draw or resize, that need to be a implemented by all subclasses but must be implemented in different ways. The Graphic class can look something like this:
abstract class Graphic {
void moveTo(int x, int y) {
// Inside this method we have to change the position of the graphic
// according to x,y
// This is the same in every Graphic . Then we can implement here.
}
abstract void draw(); // But every Graphic drawing case is
// unique, not common. Then we have to create that
// case inside each class. Then create these
// methods as abstract
abstract void resize();
}
Usage of abstract method in sub classes Each non abstract subclasses of Graphic , such as Circle and Rectangle, must provide implementations for the draw and resize methods.
class Circle extends Graphic {
void draw() {
//Add to some implementation here
}
void resize() {
//Add to some implementation here
}
}
class Rectangle extends Graphic {
void draw() {
//Add to some implementation here
}
void resize() {
//Add to some implementation here
}
}
Inside the main method you can call all methods like this:
public static void main(String args[]){
Graphic c = new Circle();
c.draw();
c.resize();
c.moveTo(4,5);
}
Ways to achieve abstraction in Java
There are two ways to achieve abstraction in java
Abstract class (0 to 100%)
Interface (100%)
Abstract class with constructors, data members, methods, etc
abstract class Graphic {
Graphic (){
System.out.println(\"Graphic is created\");
}
void moveTo(int y, int x) {
System.out.println(\"Change position according to \"+ x+ \" and \" + y);
}
abstract void draw();
}
class Circle extends Graphic {
void draw() {
System.out.println(\"Draw the Circle\");
}
}
class TestAbstract {
public static void main(String args[]){
Graphic grObj = new Circle ();
grObj.draw();
grObj.moveTo(4,6);
}
}
Output:
Graphic is created
Draw the Circle
Change position according to 6 and 4
Remember two rules:
If the class has few abstract methods and few concrete methods, declare it as an abstract class.
If the class has only abstract methods, declare it as an interface.
References:
TutorialsPoint - Java Abstraction
BeginnersBook - Java Abstract Class Method
Java Docs - Abstract Methods and Classes
JavaPoint - Abstract Class in Java
继续阅读与本文标签相同的文章
中国移动5G套餐价格曝光!费用128元起!
格力电器将取消电信方面业务,格力手机将告别?
-
韩国公布500亿美元计划 大力发展电动和自动驾驶汽车
2026-05-18栏目: 教程
-
原来这样做可以提高自媒体短视频的播放量?
2026-05-18栏目: 教程
-
用了3年以上的iPhone手机,应该这样清理手机缓存,很实用
2026-05-18栏目: 教程
-
一文弄懂,锁的基本概念到Redis分布式锁实现
2026-05-18栏目: 教程
-
阿里云混合云备份如何还原虚拟机备份?
2026-05-18栏目: 教程
