can a normal class have abstract methods code example
Example 1: is it necessary for abstract class to have abstract method
No, abstract class can have zero abstract methods.
Example 2: what is the need of abstract class
It is helpful if you need to make a generic function that can take a lot of class types as an argument. Eg:
abstract class Shape {
void area();
void perimeter();
}
class Rectangle extends Shape {
int width;
int height;
Rectangle(this.width, this.height);
void area() => this.width * this.height;
void perimeter() => 2*(this.width + this.height);
}
class Triangle extends Shape {
int side1;
int side2;
int side3;
Triangle(this.side1, this.side2, this.side3);
void area() => 0.5 * this.side1 * this.side2 * this.side3;
void perimeter() => this.side1 + this.side2 + this.side3;
}
void printGeometry(Shape shape) {
print("The area of this shape is ${shape.area()}";)
print("The perimeter of this shape is ${shape.perimeter()}";)
}
Example 3: can abstract class have non abstract methods in java
abstract class AbstractDemo { // Abstract class
private int i = 0;
public void display() { // non-abstract method
System.out.print("Welcome to Tutorials Point");
}
}
public class InheritedClassDemo extends AbstractDemo {
public static void main(String args[]) {
AbstractDemo demo = new InheritedClassDemo();
demo.display();
}
}