Abstract class

You msut read Writing Abstract Classes and Methods in Java Tutorial.
Shape.java
public abstract class Shape {
    public abstract double area();
    public abstract double perimeter();
    
    /** return the ratio of area to perimeter */
    public double areaToPerimeterRatio() {
        return area()/perimeter();
    }
}
Shape2.java
public abstract class Shape2 extends Shape {
    /** return the ratio of area to the square of the perimeter */
    public double areaToPerimeterSquareRatio() {
        return area()/(perimeter()*perimeter());
    }
}
Rectangle.java
public class Rectangle extends Shape {
    private double width;
    private double height;
    
    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }
    
    public double area() {
        return width*height;
    }
    
    public double perimeter() {
        return 2*(width+height);
    }
}
Circle.java
public class Circle extends Shape {
    private double radius;
    
    public Circle(double radius) {
        this.radius = radius;
    }
    
    public double area() {
        return Math.PI*radius*radius;
    }
    
    public double perimeter() {
        return 2*Math.PI*radius;
    }
}
ShapeTest.java
public class ShapeTest {
    public static void main(String[] args) {
        Rectangle r = new Rectangle(3,5);
        System.out.println("Area: " + r.area() + "  Perimeter: " + r.perimeter() + 
                                          "  Ratio: " + r.areaToPerimeterRatio());
        Circle c = new Circle(10.5);
        System.out.println("Area: " + c.area() + "  Perimeter: " + c.perimeter() + 
                                         "  Ratio: " + c.areaToPerimeterRatio());
    }
}
Output
Area: 15.0  Perimeter: 16.0  Ratio: 0.9375
Area: 346.36059005827474  Perimeter: 65.97344572538566  Ratio: 5.25