上面一篇,说到了继承,现在再说一个和继承差不多但又不同的内容:
接口
有了猫狗的一般情况,那么来点特殊的,叮当猫,哮天犬。
所以这俩除了普通的animal的特性外还有别的,但是又不是所有的猫狗都具备特殊特性,所以要有种特殊的方式实现。那就是接口(interface)。
接口是把特定属性封装起来,一旦类实现了接口,该类就可以支持接口所指定的所有属性和方法,但是接口不能提供执行方式,只能声明。
也许很麻烦,但是类可以多接口实现,多个类可以实现相同接口。接口的命名要在前面加一个“I”字母。
好,下面写个接口:
public interface IChange {
String ChangeThing(String thing);
}
创建一个机器猫的类:
public class MachineCat extends Animal implements IChange{
public MachineCat(String name) {
super(name);
}
public MachineCat() {
super();
}
public String shout(){
for(int i =0;i<shoutNum;i++){
System.out.println("喵");
}
return "我的名字是"+name;
}
@Override
public String ChangeThing(String thing) {
return shout()+"我有"+thing;
}
}
最后主方法:
public class CatShout {
public static void main(String[] args) {
MachineCat cat = new MachineCat("机器猫");
cat.setShoutNum(3);
IChange cat2=cat;//让cat2具有cat的属性,又有特殊的属性
System.out.println(cat2.ChangeThing("万能口袋"));
//但是cat2声明的是IChange所以只能用该接口中的方法
}
}
运行结果: