Java Tutorial/Class Definition/Abstract Class
Abstract Classes
- Provide a contract between a service provider and its clients.
- An abstract class can provide implementation.
- To make an abstract method, use the abstract modifier in front of the method declaration.
<source lang="java">
public abstract class DefaultPrinter {
public String toString() { return "Use this to print documents."; } public abstract void print(Object document);
}</source>
A demonstration of abstract.
<source lang="java">
abstract class A {
abstract void callme(); void callmetoo() { System.out.println("This is a concrete method."); }
} class B extends A {
void callme() { System.out.println("B"s implementation of callme."); }
} class AbstractDemo {
public static void main(String args[]) { B b = new B(); b.callme(); b.callmetoo(); }
}</source>
Using abstract methods and classes.
<source lang="java">
abstract class Figure {
double dim1; double dim2; Figure(double a, double b) { dim1 = a; dim2 = b; } abstract double area();
} class Rectangle extends Figure {
Rectangle(double a, double b) { super(a, b); } double area() { System.out.println("Inside Area for Rectangle."); return dim1 * dim2; }
} class Triangle extends Figure {
Triangle(double a, double b) { super(a, b); } double area() { System.out.println("Inside Area for Triangle."); return dim1 * dim2 / 2; }
} class AbstractAreas {
public static void main(String args[]) { Rectangle r = new Rectangle(9, 5); Triangle t = new Triangle(10, 8); Figure figref; figref = r; System.out.println("Area is " + figref.area()); figref = t; System.out.println("Area is " + figref.area()); }
}</source>