title: Cant find Symbol error
body: <p>The compiler gives me an error message saying it can't find movies[x].getTitle() and movies[x].getYear. I've been wondering if it's a problem with going through the interface to get to the classes</p>
  
  <p>Here is the error:</p>
  
  <pre><code>MathewBorumP5.java:68: error: cannot find symbol
  System.out.printf("%-26s%-6s%-10s%-9s%-11s\n", movies[x]
  .getTitle(),
  
  ^
  symbol:   method getTitle()
  location: interface Profitable
  MathewBorumP5.java:69: error: cannot find symbol
                              movies[x].getYear(), movies[x].calcRevenue(),
                                       ^
  symbol:   method getYear()
  location: interface Profitable
  2 errors
  </code></pre>
  
  <p>Here is my client class:</p>
  
  <pre><code>import java.util.Scanner;
  
  public class MathewBorumP5 {
      public static void main(String[] args) {
          int choice;
          boolean restart = true;
  
          Scanner input = new Scanner(System.in);
  
          Profitable[] movies = new Profitable[6];
          movies[0] = new Animated("Beauty and the Beast", "Gary Trousdale", 1991,
          10.0, 5.0, 2.0);
          movies[1] = new Animated("Peter Pan", "Clyde Geronimi", 1953, 2.0, 1.2,
          .5);
          movies[2] = new Documentary("Planet Earth", "Alastair Fothergill", 2006,
          10, 20, 5);
      movies[3] = new Documentary("Drain the Ocean", "Steve Nichols", 2009, 9,
          2,3);
      movies[4] = new Drama("The Shawshank Redemption", "Frank Darabont",
          1994, 89, 7, 2);
      movies[5] = new Drama("The Godfather", "Francis Coppola", 1972, 10, 3,
          5);
  
      do {
          menu();
          System.out.print("Enter a number from 1 - 5: ");
          choice = input.nextInt();
          System.out.print("\n");
  
          switch(choice) {
              case 1:
                  item1(movies);
                  break;
              case 2:
                  break;
              case 3:
                  break;
              case 4:
                  break;
              case 5:
                  restart = false;
                  break;
              default:
                  System.out.print("You didn't enter a number between 1"
                      + " and 5.\n");
                  break;
          }
      } while(restart == true);
  }
  
  public static void menu() {
      System.out.print("Warren Moore Movie Menu\n");
      System.out.print("1. Show the list of movies in the array\n");
      System.out.print("2. Display the total number of movies and the total" +
          " revenues\n");
      System.out.print("3. Search movie by title\n");
      System.out.print("4. Display movies sorted by profit in decreasing" +
          " order\n");
      System.out.print("5. Exit\n");
  }
  
  public static void item1(Profitable[] movies) {
      double revenue;
      System.out.printf("%-26s%-6s%-10s%-9s%-11s\n", "Title", "Year", 
      "Revenue", "Profit", "Category");
      for(int x = 0; x &lt;= 6; x++) {
          revenue = movies[x].calcRevenue();
          System.out.printf("%-26s%-6s%-10s%-9s%-11s\n", movies[x].getTitle(),
              movies[x].getYear(), movies[x].calcRevenue(),
              movies[x].calcProfit(revenue), movies[x].category());
      }
  }
  }
  </code></pre>
  
  <p>Here is my superclass:</p>
  
  <pre><code>public class Movie implements Profitable {
  protected String title;
  protected String director;
  protected int year;
  protected double productionCost;
  private int totalMovies = 0;
  
  public Movie() {
      totalMovies++;
  }
  public Movie(String newTitle, String newDirector, int newYear,
      double newCost) {
      totalMovies++;
      title = newTitle;
      director = newDirector;
      year = newYear;
      productionCost = newCost;
  }
  
  public int getTotalMovies() {
      return totalMovies;
  }
  
  public String getTitle() {
      return title;
  }
  
  public void setTitle(String newTitle) {
      this.title = title;
  }
  
  public String getDirector() {
      return director;
  }
  
  public void setDirector(String director) {
      this.director = director;
  }
  
  public int getYear() {
      return year;
  }
  
  public void setYear(int year) {
      this.year = year;
  }
  
  public double getProductionCost() {
      return productionCost;
  }
  
  public void setProductionCost(double productionCost) {
      this.productionCost = productionCost;
  }
  
  public String toString() {
      return "";
  }
  }
  </code></pre>
  
  <p>Here are my separate classes.
      public class Animated extends Movie implements Profitable {
      private double rate;
      private double income;</p>
  
  <pre><code>public Animated() {
      super();
  }
  
  public Animated(String title, String director, int year, double cost,
      double rate, double income) {
      super(title, director, year, cost);
      this.rate = rate;
      this.income = income;
  }
  
  public double getRate() {
      return rate;
  }
  
  public void setRate(double rate) {
      this.rate = rate;
  }
  
  public double getIncome() {
      return income;
  }
  
  public void setIncome(double income) {
      this.income = income;
  }
  
  public String category() {
      return "Animated";
  }
  
  public double calcRevenue() {
      return (income * rate);
  }
  
  public double calcProfit(double revenue) {
      return (revenue - super.productionCost);
  }
  
  public String toString() {
      return (super.toString() + "");
  }
  }
  </code></pre>
  
  <p>Number 2</p>
  
  <pre><code>public class Documentary extends Movie implements Profitable {
  private int distributors;
  private double premium;
  
  public Documentary() {
      super();
  }
  
  public Documentary(String title, String director, int year, double cost,
      int distributors, double premium) {
      super(title, director, year, cost);
      this.distributors = distributors;
      this.premium = premium;
  }
  
  public int getDistributors() {
      return distributors;
  }
  
  public void setDistributors(int distributors) {
      this.distributors = distributors;
  }
  
  public double getPremium() {
      return premium;
  }
  
  public void setPremium(double premium) {
      this.premium = premium;
  }
  
  public String category() {
      return "Documentary";
  }
  
  public double calcRevenue() {
      return (distributors * premium);
  }
  
  public double calcProfit(double revenue)  {
      return (revenue - super.productionCost);
  }
  
  public String toString() {
      return (super.toString() + "");
  }
  }
  </code></pre>
  
  <p>Number 3</p>
  
  <pre><code>public class Drama extends Movie implements Profitable {
  private int tickets;
  private double avgPrice;
  
  public Drama() {
      super();
  }
  
  public Drama(String title, String director, int year, double cost,
      int tickets, double avgPrice) {
      super(title, director, year, cost);
      this.tickets = tickets;
      this.avgPrice = avgPrice;
  }
  
  public int getTickets() {
      return tickets;
  }
  
  public void setTickets(int tickets) {
      this.tickets = tickets;
  }
  
  public String category() {
      return "Drama";
  }
  
  public double calcRevenue() {
      return (tickets * avgPrice);
  }
  
  public double calcProfit(double revenue) {
      return (revenue - super.productionCost);
  }
  
  public String toString() {
      return (super.toString() + "");
  }
  }
  </code></pre>
  
  <p>And finally my interface.</p>
  
  <pre><code>public interface Profitable {
      public abstract String category();
      public abstract double calcRevenue();
      public abstract double calcProfit(double revenue);
  }
  </code></pre>