日期:2014-05-20  浏览次数:20747 次

抽象类和接口
抽象类和接口他们里面都只是定义了一个没有方法体的方法,而他们的方法又要在实现他们方法的那个类中定义方法体,这样何必不直接在那个实现他们方法的那个类中直接定义方法,而要使用抽象类与接口呢?
接口

------解决方案--------------------
这样就可以多态了啊,最典型就是几何图形面积的问题了。我们可以声明一个接口,叫“图形”,这个接口里定义了一个方法,“求面积”。然后我们可以定义“三角形”、“方形”、“圆形”类,都实现“图形”接口,然后每个类都根据自己的形状,实现各自的“求面积”方法。

这样,我们后续可以声明一个“图形”索引(比如“图形” shape;),然后用的时候,根据图形具体情况实例化。我们可以: shape = new “三角形”(...);可以 shape = new “方形”(...); 可以shape = new “圆形”(...);最终求面积只需要:shape.“求面积”();就可以得到图形的面积了,而不用关心具体是什么形状。

LZ再看看教科书对多态的解释吧,这里举得例子比较简单,体现的不是特明显,在真正复杂场景使用的时候(比如数据源、Spring注入等),体现其灵活性更明显。

------解决方案--------------------
引用:
这样就可以多态了啊,最典型就是几何图形面积的问题了。我们可以声明一个接口,叫“图形”,这个接口里定义了一个方法,“求面积”。然后我们可以定义“三角形”、“方形”、“圆形”类,都实现“图形”接口,然后每个类都根据自己的形状,实现各自的“求面积”方法。

这样,我们后续可以声明一个“图形”索引(比如“图形” shape;),然后用的时候,根据图形具体情况实例化。我们可以: shape = new “三角形”(...);可以 shape = new “方形”(...); 可以shape = new “圆形”(...);最终求面积只需要:shape.“求面积”();就可以得到图形的面积了,而不用关心具体是什么形状。

LZ再看看教科书对多态的解释吧,这里举得例子比较简单,体现的不是特明显,在真正复杂场景使用的时候(比如数据源、Spring注入等),体现其灵活性更明显。

++
------解决方案--------------------
引用:
Quote: 引用:

这样就可以多态了啊,最典型就是几何图形面积的问题了。我们可以声明一个接口,叫“图形”,这个接口里定义了一个方法,“求面积”。然后我们可以定义“三角形”、“方形”、“圆形”类,都实现“图形”接口,然后每个类都根据自己的形状,实现各自的“求面积”方法。

这样,我们后续可以声明一个“图形”索引(比如“图形” shape;),然后用的时候,根据图形具体情况实例化。我们可以: shape = new “三角形”(...);可以 shape = new “方形”(...); 可以shape = new “圆形”(...);最终求面积只需要:shape.“求面积”();就可以得到图形的面积了,而不用关心具体是什么形状。

LZ再看看教科书对多态的解释吧,这里举得例子比较简单,体现的不是特明显,在真正复杂场景使用的时候(比如数据源、Spring注入等),体现其灵活性更明显。

++


xx
------解决方案--------------------
其实多态体会最深的还是设计模式
------解决方案--------------------
设计问题。。。是很难说清的。
http://www.cnblogs.com/healerkx/category/136925.html
------解决方案--------------------
如果直接在具体类里去单独的实现,那么假如有很多类似的需求去处理,那么你就生成很多类似的代码,这样重复的过程,不能很好的体现面相对象的特征,也就是多态性。所以设计一个根接口,然后根据需要去实现这个接口,从而可以体现一个入口, 多种输出的多态特征。