面向抽象编程和面向接口编程

面向接口编程,是指面向超类型编程,比如抽象类和接口,或super class,这样的话,可以按照约定进行获取数据,不用关心内部处理的细节,封装了业务逻辑,维护了系统的稳定性和系统间的低耦合性。

 

面向抽象编程,是指面向抽象角色编程,而不面向具体类编程。好处是程序可以灵活地增加功能,良好的解耦性、可扩展性,符合“开-闭”准则。

 

抽象类:

类中有抽象方法,继承类必须实现这些抽象方法。(也可以没有抽象方法,而只是实现该类而已,这是纯类型抽象)。

接口:

类中的方法全部为抽象方法,变量为静态变量,接口的方法封装了不同的行为,接口的实现类必须实现这些抽象方法。

 

继承是“a is A”的关系,接口实现是 "hava a"的关系。

因为继承的子类必须是继承类的子类, 接口只是为了添加一个行为功能而已。接口更多的是使用了组合模式,来添加功能。

 

区别:

抽象类和接口都是超类型,抽象类是对事物的抽象,接口是对行为的抽象。

这样,在需要使用事物抽象时使用抽象类,在需要使用行为抽象时使用接口。

 

小结:

抽象类中不一定有抽象方法, 只要有abstract access control modify, 也可以类里没有abstract method,因为这个只是抽象角色而已。   只是让这个抽象无法直接实例化,必须继承这个角色才能实现这个抽象产品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值