Is this code correct?
YouthBirthday birth; birth = new Birthday( "Terry", 23 );
No. A reference variable for a child class (YouthBirthday) cannot be used for an object of a parent class (Birthday).
 YouthBirthday Parents can accommodate children, but children can't accommodate parents. If you find this rule hard to remember, just think of yourself and your parents:
It is OK for you to go home and stay in your parent's house for a few days, but it's not OK for them to stay in your dorm room for a few days.
Now let us re-write YouthBirthday
in order to show more about polymorphism.
Say that you want two greeting()  methods
for YouthBirthday:
greeting() method.
    Here is a skeleton:
// Revised version
//
class YouthBirthday  extends Birthday
{
  public  YouthBirthday ( String r, int years )
  {
    super ( r, years )
  }
  // additional method---does not override parent's method
  public void greeting( ___________  ____________ )
  {
    super.greeting();
    System.out.println("How you have grown!!\n");
    System.out.println("Love, " + ___________ + "\n" );
  }
}