1. A. T
B. T
C. T
D. T
E. F
2. A. F
B. T
C. T
D. T
3. A. F
B. F
C. T
D. T
4.
public class Diploma
{
private String name, course;
public Diploma(String n, String c){name=n;course=c;}
public String toString(){return "This certifies that
"+name+"
has completed a course in "+course;}
}
public class DiplomaWithHonors extends Diploma
{
public DiplomaWithHonors(String n, String c){super(n,c);}
public String toString(){return super.toString()+"
*** with honors ***";}
}
6. A.
public abstract class Triangle
{
private double side;
public Triangle(double s){side = s;}
public double getSide(){return side;}
public abstract double getPerimeter();
public abstract double getArea();
public double getRatio(){return getArea()/getPerimeter();}
}
public class EquilateralTriangle extends Triangle
{
public EquilateralTriangle(double s){super(s);}
public double getPerimeter(){return 3*getSide();}
public double getArea(){return Math.sqrt(3)/4*getSide()*getSide();}
}
public class RightTriangle extends Triangle
{
public RightTriangle(double s){super(s);}
public double getPerimeter(){return (2+Math.sqrt(2.0))*getSide();}
public double getArea(){return getSide()*getSide()/2;}
}
public class TriangleTest
{
public static void main(String[] args)
{
Triangle equi = new EquilateralTriangle(12);
Triangle righ = new RightTriangle(12);
System.out.println("Equilateral "+equi.getRatio());
System.out.println("Right "+righ.getRatio());
}
}
p319 8-10
8. A.
public abstract class WelcomeMessage
{
public String message;
public WelcomeMessage(String m){message=m;}
public abstract String getWelcomeMessage();
}
public class WelcomeEnglish extends WelcomeMessage
{
public WelcomeEnglish(){super("Hello");}
public String getWelcomeMessage(){return message;}
}
public class WelcomeSpanish extends WelcomeMessage
{
public WelcomeSpanish(){super("Hola");}
public String getWelcomeMessage(){return message;}
}
public class WelcomeGerman extends WelcomeMessage
{
public WelcomeGerman(){super("Hallo");}
public String getWelcomeMessage(){return message;}
}
public class WelcomeTest
{
public static void main(String[] args)
{
WelcomeMessage en = new WelcomeEnglish();
WelcomeMessage es = new WelcomeSpanish();
WelcomeMessage de = new WelcomeGerman();
print(en); print(es); print(de);
}
public static void print(WelcomeMessage m)
{
System.out.println(m.getWelcomeMessage());
}
}
B. An interface is better to use for the project because all of the methods are redefined in child classes.
public interface WelcomeMessage
{
String getWelcomeMessage();
}
public class WelcomeEnglish implements WelcomeMessage
{
private String message;
public WelcomeEnglish(){message="Hello";}
public String getWelcomeMessage(){return message;}
}
public class WelcomeSpanish implements WelcomeMessage
{
private String message;
public WelcomeSpanish(){message="Hola";}
public String getWelcomeMessage(){return message;}
}
public class WelcomeGerman implements WelcomeMessage
{
private String message;
public WelcomeGerman(){message="Hallo";}
public String getWelcomeMessage(){return message;}
}
public class WelcomeTest
{
public static void main(String[] args)
{
WelcomeMessage en = new WelcomeEnglish();
WelcomeMessage es = new WelcomeSpanish();
WelcomeMessage de = new WelcomeGerman();
print(en); print(es); print(de);
}
public static void print(WelcomeMessage m)
{
System.out.println(m.getWelcomeMessage());
}
}
9.
public interface Place
{
int distance(Place other);
int getPosition();
}
public class Position implements Place
{
private int position;
public Position(int p){position=p;}
public Position(){position=4;}
public int getPosition(){return position;}
public int distance(Place other)
{
return Math.abs(other.getPosition()-this.getPosition());
}
}
public class PlaceTest
{
public static void main(String[] args)
{
Place p1 = new Position();
Place p2 = new Position(6);
Place p3 = new Position(2);
if(sameDistance(p1,p2,p3))
{
System.out.print("Places are equidistant");
}
}
public static boolean sameDistance(Place p1, Place p2, Place p3)
{
return p1.distance(p2) == p1.distance(p3);
}
}
10. toString is never listed in an interface because Object has its own toString and to redefine a method, there needs to be code. An interface does not have code in methods.
Views - Today : 88 Total : 88