What is the effect of attempting to compile and run this Java program that consists of two class definitions in separate files:
public class Animal
{
   public Animal(String theBreed)
   {  breed = theBreed;
   }

   public String getBreed()
   {  return breed;
   }

   private String breed;
}

public class Cow
   extends Animal
{
   public Cow(String theBreed)
   {  super(theBreed);
   }

   public String toString()
   {  return "Subclass: " + getBreed();
   }

   public static void main(String[] args)
   {  Cow c = new Cow("cow");
      System.out.println(c);
   }
}
(a) The program compiles and, when run, displays Subclass: cow
(b) It compiles and, when run, displays Superclass: cow
(c) It compiles and, when run, displays both Superclass: cow and Subclass: cow
(d) It doesn't compile.

Select the most appropriate answer.