接口的定义:
1.声明接口的关键字是interface,接口只能定义方法,
但是不能自己书写方法,只能通过实现类里面对接口定义
的方法进行重写@Override;
2.接口的本质是契约,就像法律一样,制定好后大家都要遵守;
3.接口可以通过关键字extends继承接口,且一个接口可以继承多个接口,
这一点就是与继承的区别。
4.接口所有定义的方法默认为public abstract,定义的变量默认为常量,
即public static final;
概述:
1.接口本质上是一个比抽象类更加抽象的类,·而抽象类更接近一个类,只是比普通类多了抽象方法的定义。
2.抽象类只能对其子类的行为进行约束。但接口可以对实现本接口的所有类进行约束,范围更加广泛。
3.如果把抽象类比喻成国家的一部法律,接口则是一部国际法。国内法律只适用于本国,而国际法适用于所有缔约国。
定义接口:
interface 【interface】接口名{
//接口中定义的抽象方法
}
用类实现接口:
implements 【类修饰符】class 类名【extends】【父类】【implements <接口列表>】{
//实现接口中的所有抽象方法
}
举例一:定义一个名为Biology的接口,并定义breathe()的抽象方法;
interface Biology{
void breathe();
//因为接口默认所有方法都为public abstract,所有无需额外添加
//尤其注意接口只能定义方法,不能书写方法的内容
}
举例二:定义一个名为Person的类实现Biology接口
class Person implements Biology {
@Override//对方法进行重写
public void breathe(){//重写后的方法能输出breathe
System.out.println("breathe");
}
}
举例三:定义一个Animal的接口继承Biology的接口,增加eat()抽象方法
interface Animal extends Biology{
void eat();
}
举例四:定义一个person的类实现B 和A两个接口
class person implements A,B{
//实现类可实现多个接口,中间用逗号隔开
}
注意事项:
//实现接口的类必须实现该接口中的所有抽象方法,只要有一个抽象方法没有实现,则该类只能成为一个抽象类;
//接口中定义的方法全部默认为 public abstract的抽象方法;
//接口中定义的变量全部默认为常量,即public static final;