http://www.verejava.com/?id=16992815279749
/** 知识点: 接口 interface (重点中的重点) 面向接口的编程 接口的定义: 接口就是一个约定 题目: 胡锦涛说要建立和谐社会,温家宝说要为人民服务 思路: 1. 抽象出类: 胡锦涛-主席(ChairMan), 省长(Governer) 2. 找出关系: 各省省长传达并实现 主席讲话方针 */ /** 注意: 1. 声明一个接口关键字为 interface 2. 接口中不允许定义方法的实现,只能是声明, 跟抽象类有所不同, 抽象类是 允许定义具体方法的. 所以接口有的时候也称为特殊的抽象类 3. 接口中方法的声明可以省略关键字 abstract ,抽象类中的抽象方法不能省略 4. 接口中方法默认都是public 的 5. 接口中的属性都是静态常量 static final 关键字可以省略,接口中属性默认 是public 的并且可以省略public ,不允许有private,protected 关键字修饰 6. 实现接口的类用关键字 implements 7. 实现类中必须 实现接口中的所有声明方法, 跟抽象类一样 8. 不能实例化接口, 必须有其实现类间接实例化, 跟抽象类一样 9. 如果要实现多个接口用, 隔开, 并且实现类要实现所有接口的方法, 而 抽象类不能多继承 10. 接口可以继承多个接口, 抽象类不行(这个就是为什么流行用面向接口编程的原因) 11. 类可以同时继承一个类和实现多个接口 */ public class TestInterface { public static void main(String[] args) { //输出主席名称 System.out.println(ChairMan.name); //实例化接口 //ChairMan chair=new ChairMan(); System.out.println("开各省大会了..."); Governer g1=new Governer("北京市市长"); g1.buildHarmonyCommunity("教育"); g1.serviceForPeople("慈善"); Governer g2=new Governer("河北省省长"); g2.buildHarmonyCommunity("联谊晚会"); g2.serviceForPeople("尊老爱幼"); g2.service(); } } interface ChairMan { String name="胡锦涛"; /** 声明要建立和谐社会 */ public void buildHarmonyCommunity(String method); } interface PrimeMinister { String name="温家宝"; /** 声明为人民服务 */ public void serviceForPeople(String method); } interface Leader extends ChairMan,PrimeMinister { } //class Governer implements ChairMan,PrimeMinister class LeiFeng { public void service() { System.out.println("全心全意为人民服务"); } } class Governer extends LeiFeng implements Leader { private String name;//省长名 public Governer(String name) { this.name=name; } /** 实现主席建立和谐社会的方针 */ public void buildHarmonyCommunity(String method) { System.out.println(name+" 我们是通过 "+method+" 来实现和谐社会"); } /** 实现总理为人民服务的方针 */ public void serviceForPeople(String method) { System.out.println(name+" 我们是通过 "+method+" 来为人民服务的"); } public String getName() { return this.name; } }
http://www.verejava.com/?id=16992815279749