抽象類はいつ使いますか?

3061 ワード

  :



                         。            ,            。



              。                   ?     ,         ,              ?
 
次はこの文章のテーマを話します.抽象類はいつ使いますか?インタフェースの特性を持つ普通のクラスをベースとして使いたい時だと思います.簡単に言えば、いくつかのクラスのベースとしてのクラスを設計したいですが、このベースクラスの一部の方法を実現したい時だけです.一例を挙げると、たくさんの種類の羊がいます.ヤギ、ヒツジ、喜羊など.基本クラスを設計するには、次の2つの方法があります.
public abstract class  

{

      public abstract void   ();



      public abstract void       ();

}
  
各种の羊が草を食べる动作がすべて同じだと仮定して、各种の羊がこの基类を受け継ぐ时更に各自でこの方法の実现を书く必要がありません.基質の中で一回だけ実現すればいいです.各種の羊の顔の特徴は違っています.基質の中で実現しても、各サブクラスの中で、再度各自の顔の特徴を実現して、操作を展示します.だから、私達はもう基質の中でこの方法を実現しません.すなわち、
public abstract calss  

{

     public virtual void   ()

     {

           //some code here

     }



     public abstract void       ();

}
このように、基質の中には実現した方法もあれば、実現する必要がない方法もあります.この類は自然に抽象類です.これが私が理解している使用シーンです.
また、実際のプログラミングでは、抽象類やインターフェースを無理に使う必要はありません.「コード大全」の中の「合理的なデザインはきっと綺麗だ」という言葉に賛成します.もし実現方法がおかしいと感じたら、それは間違いの実現方法です.
参考記事:
http://blog.csdn.net/b271737818/article/details/3950245
http://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-abstract-class
https://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/
http://www.codeproject.com/Articles/11155/Abstract-Class-versus-Interface