Java 面向对象 之 接口 interface
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;
}
}