package fab;
abstract class GeometricObject implements Comparable<GeometricObject>{
public int compareTo(GeometricObject s) {
if(s.getArea() > getArea()) {
return 1;
}else if(s.getArea() == getArea()){
return 0;
}else {
return -1;
}
}
public abstract int getArea();
public static GeometricObject max(GeometricObject a,GeometricObject b) {
if(a.compareTo(b) == -1 || b.compareTo(a) == 1) {
return a ;
}else {
return b;
}
}
}
class Triangle extends GeometricObject{
int a,h;
int Area;
Triangle(int a,int b){
this.a = a;
this.h = b;
}
public void setArea(int a,int b) {
this.a = a;
h = b;
}
public int getArea() {
return 1/2 * a * h;
}
}
class Rectangle extends GeometricObject{
int a,h;
int Area;
Rectangle(int a,int b){
this.a = a;
this.h = b;
}
public void setArea(int a,int b) {
this.a = a;
h = b;
}
public int getArea() {
return a * h;
}
}
public class Demo {
public static void main(String[] args) {
Triangle s = new Triangle(1,2);
Triangle a = new Triangle(1,1);
GeometricObject w = GeometricObject.max(s, a);
System.out.println("Its name is "+w);
}
}