Question

1. Write a class to represent a AlternativeEnergyCar. Select the fields and methods that fit the...

1. Write a class to represent a AlternativeEnergyCar. Select the fields and methods that fit the modeling of an alternative energy car. Make sure to include code for the constructors, set/get methods, a toString() method.

2. Inheritance – : For this question submit a UML as the answer.

Create two abstract subclasses of AECar, one for Electric cars and one for Altfuel cars. Next create four additional subclasses., two for types of Electric cars and two for Altfuel cars( for example, Altfuel cars might be Hydrogen powered or Biofuel powered.) Decide which properties should be pushed up into a super abstract class and which belong in the individual subclasses. You do not need to code every method – just place a stub placeholders.

3. Polymorphism - Write a driver program that uses a AECar reference variable to point to three different types of classes, showing that inheritance is one mechanism for using polymorphism.

4. Interface – Make the AECar class implement the Comparable Java interface. Write a driver program that sorts a list of 4 AECars according to price.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

CarDriver.java

import java.util.*;
public class CarDriver
{
   public static void main(String[] args)
   {
       AlternativeEnergyCar car1 = new AlternativeEnergyCar(10000, 2010, 10000);
       AlternativeEnergyCar car2 = new HydrogenCar(0, 2019, 40000, 100, false);
       AlternativeEnergyCar car3 = new ElectricCar(0, 2019, 30000, 10, 50);
       AlternativeEnergyCar car4 = new NaturalGasCar(0, 2015, 20000, 5, 20);
       AlternativeEnergyCar car5 = new PropaneCar(0, 2019, 25000, 10, true);
      
       ArrayList<AlternativeEnergyCar> cars = new ArrayList<AlternativeEnergyCar>();
      
       cars.add(car1);
       cars.add(car2);
       cars.add(car3);
       cars.add(car4);
       cars.add(car5);
       Collections.sort(cars);
       System.out.println(cars);
      
   }

}

AlternativeEnergyCar.java


public class AlternativeEnergyCar implements Comparable<AlternativeEnergyCar>
{
   protected double miles;
   protected int yearmade;
   protected double price;
  
   public AlternativeEnergyCar()
   {
       this.miles = 0;
       this.yearmade = 2019;
       this.price = 50000;
   }
   public AlternativeEnergyCar(double miles, int yearmade, double price)
   {
       this.miles = miles;
       this.yearmade = yearmade;
       this.price = price;
   }
   public void setMiles(double miles)
   {
       this.miles = miles;
   }
   public void setYearMade(int yearmade)
   {
       this.yearmade = yearmade;
   }
   public void setPrice(double price)
   {
       this.price = price;
   }
   public double getMiles()
   {
       return this.miles;
   }
   public int getYearMade(int yearmade)
   {
       return this.yearmade;
   }
   public double getPrice()
   {
       return this.price;
   }
   public String toString()
   {
       return "\nmiles: "+miles+"\nyear made: "+yearmade+"\nprice: "+price;
   }
   public int compareTo(AlternativeEnergyCar otherAECar)
   {
       return -1*(Double.valueOf(otherAECar.getPrice()).compareTo(this.price));
   }
  
}


HydrogenCar.java


public class HydrogenCar extends NoEmissionsCar
{
   private boolean infastructure;
   public HydrogenCar()
   {
       this.infastructure = false;
   }
   public HydrogenCar(double miles, int yearmade, double price, double fuelcost, boolean infastructure)
   {
       super(miles, yearmade, price, fuelcost);
       this.infastructure = infastructure;
   }
   @Override
   public void setFuelCost(double fuelcost)
   {
       this.fuelcost = fuelcost;
   }
   @Override
   public double getFuelCost()
   {
       return this.fuelcost;
   }
   public void setInfastructure(boolean infastructure)
   {
       this.infastructure = infastructure;
   }
   public boolean getInfastructure(boolean infastructure)
   {
       return this.infastructure;
   }
   @Override
   public String toString()
   {
       return "\nmiles: "+miles+"\nyear made: "+yearmade+"\nprice: "+price+"\nfuel cost: "+fuelcost+"\ninfastructure: "+infastructure;
   }
}


NoEmissionsCar.java


public abstract class NoEmissionsCar extends AlternativeEnergyCar
{
   protected double fuelcost;
   public NoEmissionsCar()
   {
       this.fuelcost = 30;
   }
   public NoEmissionsCar(double miles, int yearmade, double price, double fuelcost)
   {
       super(miles, yearmade, price);
       this.fuelcost = fuelcost;
   }
   public abstract void setFuelCost(double fuelcost);
   public abstract double getFuelCost();
}

ElectricCar.java


public class ElectricCar extends NoEmissionsCar
{
   private double batterycharge;
   public ElectricCar()
   {
       this.batterycharge = 100;
   }
   public ElectricCar(double miles, int yearmade, double price, double fuelcost, double batterycharge)
   {
       super(miles, yearmade, price, fuelcost);
       this.batterycharge = batterycharge;
   }
   @Override
   public void setFuelCost(double fuelcost)
   {
       this.fuelcost = fuelcost;
   }
   @Override
   public double getFuelCost()
   {
       return this.fuelcost;
   }
   public void setBatteryCharge(double batterycharge)
   {
       this.batterycharge = batterycharge;
   }
   public double getBatteryCharge()
   {
       return this.batterycharge;
   }
   @Override
   public String toString()
   {
       return "\nmiles: "+miles+"\nyear made: "+yearmade+"\nprice: "+price+"\nfuel cost: "+fuelcost+"\nbattery charge: "+batterycharge;
   }

}


NaturalGasCar.java


public class NaturalGasCar extends EmissionsCar
{
   private double methaneemissions;
   public NaturalGasCar()
   {
       this.methaneemissions = 15;
   }
   public NaturalGasCar(double miles, int yearmade, double price, double emissions, double methaneemissions)
   {
       super(miles, yearmade, price, emissions);
       this.methaneemissions = methaneemissions;
   }
   @Override
   public void setEmissions(double emissions)
   {
       this.emissions = emissions;
      
   }
   @Override
   public double getEmissions()
   {
       return this.emissions;
   }
   public void setMethaneEmissions(double methaneemissions)
   {
       this.methaneemissions = methaneemissions;
      
   }
   public double getMethaneEmissions()
   {
       return this.methaneemissions;
   }
   @Override
   public String toString()
   {
       return "\nmiles: "+miles+"\nyear made: "+yearmade+"\nprice: "+price+"\nemissions: "+emissions+"\nmethane emissions: "+methaneemissions;
   }

}

EmissionsCar.java


public abstract class EmissionsCar extends AlternativeEnergyCar
{
   protected double emissions;
   public EmissionsCar()
   {
       this.emissions = 30;
   }
   public EmissionsCar(double miles, int yearmade, double price, double emissions)
   {
       super(miles, yearmade, price);
       this.emissions = emissions;
   }
   public abstract void setEmissions(double emissions);
   public abstract double getEmissions();
}


PropaneCar.java

public class PropaneCar extends EmissionsCar
{
   private boolean infastructure;
   public PropaneCar()
   {
       this.infastructure = true;
   }
   public PropaneCar(double miles, int yearmade, double price, double emissions, boolean infastructure)
   {
       super(miles, yearmade, price, emissions);
       this.infastructure = infastructure;
   }
   @Override
   public void setEmissions(double emissions)
   {
       this.emissions = emissions;
      
   }
   @Override
   public double getEmissions()
   {
       return this.emissions;
   }
   public void setMethaneEmissions(boolean infastructure)
   {
       this.infastructure = infastructure;
      
   }
   public boolean getMethaneEmissions()
   {
       return this.infastructure;
   }
   @Override
   public String toString()
   {
       return "\nmiles: "+miles+"\nyear made: "+yearmade+"\nprice: "+price+"\nemissions: "+emissions+"\ninfastructure: "+infastructure;
   }

}


Add a comment
Know the answer?
Add Answer to:
1. Write a class to represent a AlternativeEnergyCar. Select the fields and methods that fit the...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • (The interface class-like) Assume you have the Edible interface with its abstract method. Design a class named Animal a...

    (The interface class-like) Assume you have the Edible interface with its abstract method. Design a class named Animal and its two subclasses named Mammal and Dairy. Make Sheep and Bear as subclasses of Mammal and make implement the Edible interface. howToEat() and sound() are the main two methods for all edible classes while sound() is the main method for the non-edible classes. 1. Draw the UML diagram for the classes and the interface 2. Use Arraylist class to create an...

  • Exercise 8 (The interface class-like) Assume you have the Edible interface with its abstract method Design...

    Exercise 8 (The interface class-like) Assume you have the Edible interface with its abstract method Design a class named Animal and its two subclasses named Mammal and Dairy. Make Sheep and Bear as subclasses of Mammal and make Chicken and Cow as subclasses of Dairy. The Sheep and Dairy classes implement the Edible interface. howToEat) and sound() are the main two methods for all edible classes while sound() is the main method for the non-edible classes. 1. Draw the UML...

  • Project 7: Vehicles 1 Objective In the last couple projects, you’ve created and used objects in...

    Project 7: Vehicles 1 Objective In the last couple projects, you’ve created and used objects in interesting ways. Now you’ll get a chance to use more of what objects offer, implementing inheritance and polymorphism and seeing them in action. You’ll also get a chance to create and use abstract classes (and, perhaps, methods). After this project, you will have gotten a good survey of object-oriented programming and its potential. This project won’t have a complete UI but will have a...

  • IN JAVA Design and code a class hierarchy that demonstrates your understanding of inheritance and polymorphism....

    IN JAVA Design and code a class hierarchy that demonstrates your understanding of inheritance and polymorphism. Your hierarchy should contain at least 5 classes and one driver program that instantiates each type of object and runs multiple methods on those objects. Inheritance and Polymorphism must be apparent in the project. Please keep in mind that polymorphism was in chapter 37, so you will need to have read both chapters to understand what goes into this project. Bonus if you add...

  • Need help to create general class Classes Data Element - Ticket Create an abstract class called...

    Need help to create general class Classes Data Element - Ticket Create an abstract class called Ticket with: two abstract methods called calculateTicketPrice which returns a double and getld0 which returns an int instance variables (one of them is an object of the enumerated type Format) which are common to all the subclasses of Ticket toString method, getters and setters and at least 2 constructors, one of the constructors must be the default (no-arg) constructor. . Data Element - subclasses...

  • plz write if it is in another class or package Question 1: 1. Create a new...

    plz write if it is in another class or package Question 1: 1. Create a new project in Eclipse (File > New > Java Project.) Name it Homework2Q1 2. Create a package for your classes 3. Create an abstract superclass with only non default constructor(s) 4. Create two different subclasses of that superclass 5. Create another class that is not related (you need a total of four classes up to this point) 6. Create an interface 7. Make the class...

  • Write ONE application program by using the following requirements: Using JAVA File input and outp...

    Write ONE application program by using the following requirements: Using JAVA File input and output Exception handling Inheritance At least one superclass or abstract superclass: this class needs to have data members, accessor, mutator, and toString methods At least one subclass: this class also needs to have data members, accessor, mutator, and toString methods At least one interface: this interface needs to have at least two abstract methods At least one method overloading At least one method overriding At least...

  • UML Class Diagram with Inheritance Objectives Use UML Correctly indicate inheritance Demonstrate permissions Understand inheritance relationships...

    UML Class Diagram with Inheritance Objectives Use UML Correctly indicate inheritance Demonstrate permissions Understand inheritance relationships Labwork Please read all of the directions carefully. You will create a UML class diagram reflecting the class hierarchy for a fictional program that manages university personnel as constructed according to the graph displayed below. You will need to think about the attributes and behaviors that are unique to each class, and also those attributes and behaviors that are common amongst the subclasses and...

  • Create an interface called VideoRecorder that has methods that represent four standard operations on a video...

    Create an interface called VideoRecorder that has methods that represent four standard operations on a video recorder (play, stop, record, pause). Define the method signatures any way you desire: Explain how a class might implement this interface and then write the code that is necessary in the header of the class: Draw a UML class diagram that shows the relationships among the elements

  • Assignment Requirements I have also attached a Class Diagram that describes the hierarchy of the inheritance...

    Assignment Requirements I have also attached a Class Diagram that describes the hierarchy of the inheritance and interface behaviors . The link to the PDF of the diagram is below MotorVehical.pdf Minimize File Preview User Define Object Assignment: Create a Intellij Project. The Intellij project will contain three user defined classes. The project will test two of the User Define Classes by using the invoking each of their methods and printing the results. You are required to create three UML...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT