接口编程

总结一下自己对接口的了解。 我理解的接口是只能定义方法的声明的一些特殊类,而且所有的方法都含有公有(public)的访问权限。 使用接口的好处都有什么呢?首先,接口好比是一个基本能力概况的定义,因为它定义了那些实现该接口的类所必须要实现的一个或一组方法,也就是说,该接口的实现类必须实现该接口的所有方法,否则仍然不能实例化这个类。第二,多继承,比如java,c#语言规定可以继承多个接口,但不可以继承多个类。那么继承多个类会导致什么问题呢?我理解最明显的就是多个没有关系的类中,可能有相同方法的定义(名称、参数类型,参数顺序相同),如果一个类同时继承这几个类,那么无论是在子类中重写父类中的这些方法,还是调用子类的实例中的这些方法,都会是计算机执行(可能是编译)时产生错误,而且人们对这种思路的理解也会产生误解。 但是接口允许多继承,为什么呢?在这方面接口和类有什么区别么? 接口中止定义了方法的声明,而没有(也不能有)方法的具体实现。所以可以想象,即使多个没有任何关系的接口之中有相同的方法声明,也无所谓,因为都是要由这个实现类来实现这些方法。这样,一、实现类不是重写接口中的方法,而是第一次实现这些方法的具体业务逻辑。二、当调用这个实现类的实例中的这些方法的时候,即使在多个接口中都有这个方法的声明也无所谓,不会因此而产生歧义,因为接口中只定义了方法的声明,方法的具体实现在这个类中,有且只有一个版本(暂没有考虑重载)。 第三,这是我认为最终要的,也是我刚刚理解的。举个例子

interface A{ // 首先在接口中声明两个方法,这样实现类就必须完整的实现这两个方法 void print(); void printline(); }

public class A1 implements A{ public void print(){ System.out.print("print Class A1"); } public void printline(){ System.out.println("print line Class A1"); } }

public class A2 implements A{ public void print(){ System.out.print("print Class A2"); } public void printline(){ System.out.println("print line Class A2"); } }

public class Test{ public static void main(){  A a1=new A1();  A a2=new A2();  a1.print();  a1.printline();  a2.print();  a2.printline(); } } 可以这样理解,某个业务逻辑可能由多个类似的实现版本,这些实现可能具体的逻辑不一样,但是整个执行流程却是相同的。比如做饭,无论是大米饭,还是小米饭,还是高粱米饭,做饭的流程都是一样的,只是具体的材料、时间有所差别。要针对这种逻辑写程序时,使用接口是最方便的了。由接口定义业务的工作流程,然后由实现类定义具体的实现(比如放什么米,做多久)。当测试使用的时候,只要声明接口的变量,即可被赋值为实现类的对象,通过这个变量可以调用实现类实现了的该接口的所有方法。当有多个实现类时,只要给变量赋予不同实现类的对象即可。

(未完,待序,呵呵)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值