Java Code之多态

 Java代码 复制代码 收藏代码

  1. package com.iteye.badpie.javacode.duotai;
  2.  
  3. /**
  4. * 人民警察
  5. */
  6. public interface IPolice {
  7.  
  8. /**
  9. * 抓小偷
  10. */
  11. public void catchThief();
  12.  
  13. }
package com.iteye.badpie.javacode.duotai;

/**
 * 人民警察
 */
public interface IPolice {

    /**
     * 抓小偷
     */
    public void catchThief();

}

 

Java代码 复制代码 收藏代码
  1. package com.iteye.badpie.javacode.duotai;
  2.  
  3. /**
  4. * 一个警察,执行抓小偷任务.
  5. */
  6. public class PoliceReal implements IPolice {
  7.  
  8. @Override
  9. public void catchThief() {
  10. System.out.println("抓住小偷了");
  11. }
  12.  
  13. }
package com.iteye.badpie.javacode.duotai;

/**
 * 一个警察,执行抓小偷任务.
 */
public class PoliceReal implements IPolice {

    @Override
    public void catchThief() {
        System.out.println("抓住小偷了");
    }

}
Java代码 复制代码 收藏代码
  1. package com.iteye.badpie.javacode.duotai;
  2.  
  3. /**
  4. * 另一个警察,也执行抓小偷任务.
  5. */
  6. public class PoliceHyp implements IPolice {
  7.  
  8. @Override
  9. public void catchThief() {
  10. System.out.println("大冷天的抓什么小偷啊,不如偷个菜.");
  11. }
  12.  
  13. }
package com.iteye.badpie.javacode.duotai;

/**
 * 另一个警察,也执行抓小偷任务.
 */
public class PoliceHyp implements IPolice {

    @Override
    public void catchThief() {
        System.out.println("大冷天的抓什么小偷啊,不如偷个菜.");
    }

}
Java代码 复制代码 收藏代码
  1. package com.iteye.badpie.javacode.duotai;
  2.  
  3. /**
  4. * 市民
  5. */
  6. public class Citizen {
  7.  
  8. private String mName;
  9.  
  10. public Citizen(String name) {
  11. mName = name;
  12. }
  13.  
  14. /**
  15. * 市民报案
  16. */
  17. public void report(IPolice police) {
  18. System.out.println(String.format("市民%s丢失手机,向警察报案抓小偷.", mName));
  19. police.catchThief();
  20. }
  21.  
  22. }
package com.iteye.badpie.javacode.duotai;

/**
 * 市民
 */
public class Citizen {

    private String mName;

    public Citizen(String name) {
        mName = name;
    }

    /**
     * 市民报案
     */
    public void report(IPolice police) {
        System.out.println(String.format("市民%s丢失手机,向警察报案抓小偷.", mName));
        police.catchThief();
    }

}
Java代码 复制代码 收藏代码
  1. 市民虽然向警察报了案,
  2. 但你不知道能不能把小偷抓住,
  3. 甚至你都不知道他们有没有去抓小偷,
  4. 还有可能你在电影里看到的剧情真的发生了...  

你可能感兴趣的:(java)