UML Diagram of birds
The simplified UML diagram above shows the relationships among Java classes Bird, Crow, and Duck. Suppose Bird has a fly(Location place) method, but we want Crows to makeNoise() just before they take off and then behave like other Birds. Assuming Crows have a makeNoise() method, we should

Define a fly method in Crow that just consists of makeNoise() and super.fly(place)
public void fly(Location place) { this.makeNoise(); super.fly(place); }
  • Define a fly method in Crow by copying the fly code from Bird then adding in makeNoise() at the start, i.e.
    public void fly(Location place) { this.makeNoise(); // [paste the body of Bird's fly method here] }
  • Define a fly method in Crow that just consists of makeNoise(), i.e.
    public void fly(Location place) { this.makeNoise(); }
  • Define a fly method in Crow that just consists of makeNoise() and this.fly(place), i.e.
    public void fly(Location place) { this.makeNoise(); this.fly(place); }
  • Define a fly method in Crow that just consists of makeNoise() and Bird.fly(place); i.e.
    public void fly(Location place) { this.makeNoise(); Bird.fly(place); }

There are no hints for this question