Java Programming Abstract Classes and Methods Outcomes: Student will demonstrate the ability to create abstract classes. Student will demonstrate the ability to create abstract methods. Student will demonstrate the ability to to use both concrete and abstract methods in an abstract class. Student will demonstrate the ability to use abstract methods to impose rules on all child classes. Program Specifications: Make up your own theme for this assignment. (Explain it briefly in your submission comments.) Make up your own classes for this assignment. Create an Abstract Class with Abstract Methods, a class that uses the abstract methods and a test class. Create all necessary setters, getters, constructors and methods. Create a reasonable test case Create UMLs for all non-test case classes.

Respuesta :

Answer:

Note that, you're to replace "at" with shift 2 as the brainly text editor can't Accept the symbol

Explanation:

import java.util.ArrayList;

abstract class Shape {

  private String name;

  public Shape(String name) {

      this.name = name;

  }

  public abstract double getArea();

  public abstract double getPerimeter();

  public String getName() {

      return name;

  }

}

class Circle extends Shape {

  private double radius;

  public Circle(String name, double radius) {

      super(name);

      this.radius = radius;

  }

  "at"Override

  public double getArea() {

      return Math.PI * radius * radius;

  }

  "at"Override

  public double getPerimeter() {

      // TODO Auto-generated method stub

      return 0;

  }

}

class Rectangle extends Shape {

  private double width;

  private double length;

  public Rectangle(String name, double width, double length) {

      super(name);

      this.width = width;

      this.length = length;

  }

  "at"Override

  public double getArea() {

      return width * length;

  }

  "at"Override

  public double getPerimeter() {

      // TODO Auto-generated method stub

      return 0;

  }

}

class Triangle extends Shape {

  private double size1;

  private double size2;

  private double size3;

  public double getSize1() {

      return size1;

  }

  public void setSize1(double aSize1) {

      size1 = aSize1;

  }

  public double getSize2() {

      return size2;

  }

  public void setSize2(double aSize2) {

      size2 = aSize2;

  }

  public double getSize3() {

      return size3;

  }

  public void setSize3(double aSize3) {

      size3 = aSize3;

  }

  public Triangle(String name, double size1, double size2, double size3) {

      super(name);

      this.size1 = size1;

      this.size2 = size2;

      this.size3 = size3;

  }

  public boolean isEquilateral() {

      return (size1 == size2 && size2 == size3);

  }

  "at"Override

  public double getArea() {

      double s, area;

      s = (size1 + size2 + size3) / 2;

      area = Math.sqrt(s * (s - size1) * (s - size2) * (s - size3));

      return area;

  }

  "at"Override

  public double getPerimeter() {

      // TODO Auto-generated method stub

      return 0;

  }

}

public class ShapeClient

{

  public static void main(String[] args) {

      ArrayList<Shape> shapeList = new ArrayList<Shape>();

      Shape s1 = new Circle("circle 1", 10);

      shapeList.add(s1);

      Shape s2 = new Rectangle("rectangle 2", 100, 100);

      shapeList.add(s2);

      Shape s3 = new Triangle("Triangle 3", 11, 12, 10);// these are sides

                                                          // that need to be

      Triangle t= (Triangle)(s3);                                               // compared

      if(t.getSize1()==t.getSize2() && t.getSize2()==t.getSize3()){

          shapeList.add(s3); // this is where i am stuck

      }

      if (!s1.getClass().isInstance(s2)) {

          System.out.println("Actual types of s1 and s2 are different");

      }

  }

}

Console X td> ShapeClient (2) Java Application] CASoft PegaEclip Actual types of s1 and s2 are different

Kindly check the image below to see the output.

Ver imagen temmydbrain