博客> Java 抽象类,类,接口综合案例
Java 抽象类,类,接口综合案例
2019-11-13 08:34 评论:0 阅读:878 西单_夜未央
JAVA 类与接口的关系
 /*
  综合案例
  乒乓球和篮球运动员
  乒乓球和篮球教练
  学英语      
 */

 //学英语的接口
 interface LearnEnglish
 {
      public void learnEnglish();
 }

 //人的抽象类
 abstract class Person implements LearnEnglish
 {
      private int age;
      private String name;

      public Person(){}

      public void setAge(int age)
      {
           this.age = age;
      }

      public int getAge()
      {
       return age;
      }

      public void setName(String name)
      {
           this.name = name;
      }

      public String getName()
      {
           return name;
      }

      public void learnEnglish()
      {
           System.out.println("学习英语");
      }

      public void sleep()
      {
           System.out.println(this.name + "睡觉");
      }

      public abstract void eat();
   }

 //运动员的抽象类
 abstract class Player extends Person 
 {
      public void setName(String name)
      {
           super.setName(name);
      }

      public String getName()
      {
           return super.getName();
      }

      public Player(){}
      public abstract void study();

 }

 //教练的抽象类
 abstract class Coach extends Person implements LearnEnglish
 {
      public Coach(){}

      public abstract void teach();
 }

 //乒乓球运动

 class PingpongPlayer extends Player implements LearnEnglish
 {
      public PingpongPlayer(){}

      public void study()
      {
           System.out.println(super.getName()+"学习发球");
      }

      public void eat()
      {
       System.out.println("乒乓球运动员吃猪肉");
      }
 }

 //篮球运动员
 class BasketballPlayer extends Player 
 {
      public BasketballPlayer(){}
      public void study()
      {
           System.out.println("篮球运动员学习投篮");
      }

      public void eat()
      {
           System.out.println("篮球运动员吃牛肉");
      }
 }

 //乒乓球教练

 class PingpongCoach extends Coach implements LearnEnglish
 {
      public PingpongCoach(){}

      public void teach()
      {
           System.out.println("乒乓球教练教乒乓球");
      }

      public void eat()
      {
           System.out.println("乒乓球教练吃面");
      }
 }

 //篮球教练
 class BasketballCoach extends Coach implements LearnEnglish
 {
      public BasketballCoach(){}
      public void teach()
      {
           System.out.println("篮球教练教篮球");
      }

      public void eat()
      {
           System.out.println("篮球教练喝汤");
      }
 }

 class InterfaceTest 
 {
      public static void main(String[] args) 
      {
           PingpongPlayer p = new PingpongPlayer();
           p.setName("邓亚萍");
           p.setAge(50);
           p.eat();
           p.learnEnglish();
           p.sleep();
           p.study();
      }
 }

/**
  总结:这个案例主要体现一个抽象类,类,接口之间的关系
     接口定义一个方法:学习英语
     抽象一个“人”类 :实现“学英语”的接口
          用来说明“人”的属性:名字,年龄,睡觉,吃饭
          由于“吃”的内容不一样,所以把吃这个方法抽象出来
     抽象一个“运动员”和一个“教练”类:各自有各自的方法“study”和“teach

*/
收藏
0
sina weixin mail 回到顶部