1.第1题:定义接口Movable,接口中包含抽象方法move()。定义接口Soundable,接口中包含方法sound()。定义Person类的子类Teacher类和Worker类实现Movable接口和Soundable接口。在测试类Main中,创建Teacher类和Worker类的实例,输出相应的信息。

输出结果:
王老师在讲台上走动!
张工在车间走动!
王老师正在上课!
噪声太大听不清楚!

要求:
(1)必须使用继承
(2)必须使用实现接口
(3)试着使用上转型和下转型

  1. interface Movable{
  2. public void move();
  3. }
  4. interface Soundable{
  5. public void sound();
  6. }
  7. abstract class Person{
  8. }
  9. class Teacher extends Person implements Movable,Soundable{
  10. public Teacher(){
  11. }
  12. public void move(){
  13. System.out.println("王老师在讲台上走动!");
  14. }
  15. public void sound(){
  16. System.out.println("王老师正在上课!");
  17. }
  18. }
  19. class Worker extends Person implements Movable,Soundable{
  20. public Worker(){
  21. }
  22. public void move(){
  23. System.out.println("张工在车间走动!");
  24. }
  25. public void sound(){
  26. System.out.println("噪声太大听不清楚!");
  27. }
  28. }
  29. public class Main{
  30. public static void main(String [] args){
  31. //Person m=new Teacher();
  32. //m.move();//报错
  33. Movable m=new Teacher();//上转型
  34. Teacher m1=(Teacher)m;//下转型
  35. m1.move();
  36. Movable n=new Worker();
  37. n.move();
  38. Soundable m2=new Teacher();
  39. m2.sound();
  40. Soundable n2=new Worker();
  41. n2.sound();
  42. }
  43. }

2.在教材程序16.9中的接口Calculatable增加方法getPerimeter(),该方法计算桌子的周长。圆桌类RoundTable和方桌类RectTable类实现Calculatable接口。在测试类Main中,创建RoundTable类和RectTable类的实例,计算并输出半径为30的圆桌面积和周长,计算并输出长宽为60、40的方桌面积和周长。


输出结果:
圆桌面积:2826.0
圆桌周长:188.4
方桌面积:2400.0
方桌周长:200.0

要求:必须使用实现接口
说明:程序没有输入

  1. interface CalculateAble{
  2. public double getArea();
  3. public double getPerimeter();
  4. }
  5. class RoundTable implements CalculateAble{
  6. private int r;
  7. public RoundTable (int r){
  8. this.r=r;
  9. }
  10. public double getArea(){
  11. return 3.14*r*r;
  12. }
  13. public double getPerimeter(){
  14. return 2*3.14*r;
  15. }
  16. }
  17. class RectTable implements CalculateAble{
  18. private int length;
  19. private int wide;
  20. public RectTable(int length,int wide){
  21. this.length=length;
  22. this.wide=wide;
  23. }
  24. public double getArea(){
  25. return length*wide;
  26. }
  27. public double getPerimeter(){
  28. return 2*(length+wide);
  29. }
  30. }
  31. public class Main{
  32. public static void main(String [] args){
  33. CalculateAble a=new RoundTable(30);
  34. System.out.println("圆桌面积:"+a.getArea());
  35. System.out.println("圆桌周长:"+a.getPerimeter());
  36. CalculateAble b=new RectTable(60,40);
  37. System.out.println("方桌面积:"+b.getArea());
  38. System.out.println("方桌周长:"+b.getPerimeter());
  39. }
  40. }