Review questions for test 2: 1) Define the following words: - polymorphism - inheritance - dynamic binding - scope - variable shadowing - this() - super() - constructor chaining - toString - .equals - reference - object - class 2) Write the method public String reverse(String s) which returns the String backwards. You may assume that s is not null. You must use recursion ONLY. { 3) Write the method public boolean isPalindrome(String s) which returns true if and only if s is a palindrome, false otherwise. You may assume that s is not null. You must use recursion ONLY. Remember that a palindrome is a String that is the same forwards as backwards. 4) Write the method public void printTwoSquares(int a, int b) which prints out two squares of # marks, one of size a, one of size b, that are next to each other. For example, printTwoSquares(3,5) would print ### ##### ### ##### ### ##### ##### ##### 5) Given the following class: public class Clock { int time; public Clock(int time) { this.time=time; } } Write the class AlarmClock, which o is a subclass of Clock o has an int for alarmTime o has a constructor which takes both the alarmTime and the time, uses the super constructor to initalize time, and then intializes alarmTime o has a default constructor which constructor chains with 0 for the time and 0 for the alarm time o has an accessor and modifier for alarmTime 6) Do you understand all of the concepts and how to code them from p2 phase I? Just memorizing the code is *NOT* the way to go.