java基础篇——抽象类的特点简述



 抽象类


一  抽象类的特点:


  1.抽象方法一定在抽象类中

 class  A
    {
       abstract  void  study(){}
     }

   这种定义方法是错误的;应该定义为:

  

abstract class  A
    {
       abstract  void  study(){}
     }


  2.抽象类与抽象方法都必须被abstract关键字修饰

   3.抽象类不可以用new创建对象,因为调用抽象方法没意义。

   4.抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法,建立子类对象调用,如果子类中只覆盖了部分抽象方法,那么该子类还是一个抽象类.


例如————


abstract  class Student
{
         abstract void study1(){}
         abstract void study2(){}
}


class BaseStudent extends Student
{
        void study1(){}
}


    上面这个例子的这样写法是不正确的,因为父类中有两个抽象方法,而子类中只覆写了一个,因此子类依然有一个抽象方法,抽象方法只能定义在抽象类中,所以子类应该用abstract关键字来修饰  或是覆写另一个抽象方法。


二  模板设计模式


     在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那时就将不确定的部分暴露出来,由该类的子类去完成。



<span style="font-size:14px;">abstract class GetTime
{
  public final void getTime()
   {

   long  start = System.currentTimeMillies();

   runcode();//不确定的部分,设置成抽象,由子类实现它

   long   end  = System.currentTimeMillies();

   System.out.println(end-start);
   public abstract void runcode();

   }
}</span>


class SubTime extends GetTime
{
    public void rnucode()
   {

   }
}






你可能感兴趣的:(java基础篇——抽象类的特点简述)