接口interface
接口分为两种:内部接口、外部接口
1 接口中只能声明常量、抽象方法
2 接口中不能声明变量、构造方法
3 接口是不能被实例化的,只能被实现
4 一个类可以实现多个接口
5 在接口里方法不用abstract关键字修饰,默认就是抽象方法
6 一般接口写在service文件(包)里,接口的实现类写在impl文件(包)里
下面有个关于接口的例子,父类对象指向子类,实现了多态
有个人要预定机票,市场上的订票APP为了抢占市场都在搞活动,所以订票渠道很多很多
写一个预定接口,每个预定机票的平台就实现这个接口,并重写预定方法,预定机票的人每次更换要预定的目标平台就好,就算要增加预定渠道,也是实现接口,增加了一种预定方法,这样的话程序的可可扩展性就强很多
机票预定服务接口
public interface BookingService {
void booking();
}
美团平台预定机票,实现了机票预定服务接口,重写了预定方法
public class MeiTuanService implements BookingService {
@Override
public void booking(){
System.out.println("美团订票");
}
}
艺龙平台预定机票,实现了机票预定服务接口,重写了预定方法
public class YiLongService implements BookingService {
@Override
public void booking(){
System.out.println("艺龙订票");
}
}
用户类,预定机票方法传预定服务接口参数,调用接口的预定机票方法
public class Person{
public void booking(BookingService bookingService){
bookingService.booking();
}
}
测试类,每次只要更换目标预定机票,因为父类预定服务指向了子类预定接口的实现类,就算再增加预定平台,也只是更换这个地方即可,这样代码的课宽展性就高了很多
public class Test {
@org.junit.Test
public void bookingTest(){
BookingService bookingService=new YiLongService();
Person person=new Person();
person.booking(bookingService);
}
}
如果没有接口的话,那每个平台的订票途径就是一个单独的类,用户要使用哪个订票途径就要new一个类
650

被折叠的 条评论
为什么被折叠?



