This is my test program in Java. I want to know how much abstract class is more important here and why we use abstract class for this.
Is it a mandatory or is it best method; if so how?
class Shape1 {
int i = 1;
void draw() {
System.out.println("this is shape:" + i);
}
}
class Shape2 {
int i = 4;
void draw() {
System.out.println("this is shape2:" + i);
}
}
class Shape {
public static void main(String args[]) {
Shape1 s1 = new Shape1();
s1.draw();
Shape2 s2 = new Shape2();
s2.draw();
}
}
You'd use an abstract class or interface here in order to make a common base class/interface that provides the void draw()
method, e.g.
abstract class Shape() {
void draw();
}
class Circle extends Shape {
void draw() { ... }
}
...
Shape s = new Circle();
s.draw();
I'd generally use an interface. However you might use an abstract class if:
int i
member in your case).void draw()
would have package visibility.