Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a Building class and two subclasses, House and School. The Building class

ID: 3677403 • Letter: C

Question

Create a Building class and two subclasses, House and School. The Building class contains fields for square footage and stories. The House class contains additional fields for the numbers of bedrooms and baths. The School class contains additional fields for the number of classrooms and grade level (e.g. elementary or junior high). All classes contain appropriate get and set methods and overloaded constructors allowing to accept and set the field data values. Create an application driver class ShowBuildings, which creates the objects from the House and School classes, accepts the user’s input for the fields of proper object type and pass those to the object fields for storage. Display the content of the every data field in the created object. Compile, run, and check the results. Submit the following: Four .java files (Building.java, House.java, School.java, ShowBuildings.java)

Explanation / Answer

Please find the required solution:

package com.building;

//Building class
class Building {

   // properties of building
   private double sqrFoot;
   private int stories;

   // 2-argument constructor
   public Building(double sqrFoot, int stories) {
       this.sqrFoot = sqrFoot;
       this.stories = stories;
   }

   // getters and setters
   public double getSqrFoot() {
       return sqrFoot;
   }

   public void setSqrFoot(double sqrFoot) {
       this.sqrFoot = sqrFoot;
   }

   public int getStories() {
       return stories;
   }

   public void setStories(int stories) {
       this.stories = stories;
   }

   // toString method
   @Override
   public String toString() {
       return "[sqrFoot=" + sqrFoot + ",stories=" + stories + "]";
   }
}

class House extends Building {
   private int numBedRooms;
   private int numBathRooms;

   public House(double sqrFoot, int stories, int numBedRooms, int numBathRooms) {
       super(sqrFoot, stories);
       this.numBedRooms = numBedRooms;
       this.numBathRooms = numBathRooms;
   }

   public int getNumBedRooms() {
       return numBedRooms;
   }

   public void setNumBedRooms(int numBedRooms) {
       this.numBedRooms = numBedRooms;
   }

   public int getNumBathRooms() {
       return numBathRooms;
   }

   public void setNumBathRooms(int numBathRooms) {
       this.numBathRooms = numBathRooms;
   }

   @Override
   public String toString() {
       return "House:" + super.toString() + "[numBedRooms" + numBedRooms
               + ",numBathRooms=" + numBathRooms + "]";
   }
}

class School extends Building {
   private int numClassRooms;
   private String gradeLevel;

   public School(double sqrFoot, int stories, int numClassRooms,
           String gradeLevel) {
       super(sqrFoot, stories);
       this.numClassRooms = numClassRooms;
       this.gradeLevel = gradeLevel;
   }

   public int getNumClassRooms() {
       return numClassRooms;
   }

   public void setNumClassRooms(int numClassRooms) {
       this.numClassRooms = numClassRooms;
   }

   public String getGradeLevel() {
       return gradeLevel;
   }

   public void setGradeLevel(String gradeLevel) {
       this.gradeLevel = gradeLevel;
   }

   @Override
   public String toString() {
       return "School:" + super.toString() + "[numClassRooms=" + numClassRooms
               + ",gradeLevel=" + gradeLevel + "]";
   }
}

// test method
public class ShowBuildings {
   public static void main(String[] args) {
       Building school = new School(2500, 5, 5, "primary");
       Building house = new House(2500, 5, 5, 4);
       System.out.println(school);
       System.out.println(house);
   }
}

Sample output:

School:[sqrFoot=2500.0,stories=5][numClassRooms=5,gradeLevel=primary]
House:[sqrFoot=2500.0,stories=5][numBedRooms5,numBathRooms=4]