Java abstract 抽象类与方法

 

接下来,我们准备为大家介绍“abstract抽象类与方法”。

 

  抽象类:不可以直接通过new来创建对象的类就称为抽象类。

      简单来说,只要通过abstract 关键字来描述的类就是抽象类

      而这种类不可以直接通过new操作来创建对象,但可以通过它的子类去创建对象。

 

   抽象方法:通过abstract 关键字来描述的方法就是抽象方法

         抽象方法必须定义在抽象类中,不可以定义在非抽象类中。

         抽象方法定义时不能实现其主体,而抽象方法的主体只能在子类中实现。

         抽象方法不能是静态方法。

 

 

 

  接下来,我们结合例子作进一步的学习。

 

例子1:

 

abstract class wp   //通过abstract关键字描述了wp类为抽象类

{

   int x;

   wp()         //可以有构造函数,但是需要在子类的构造函数中调用

   {

      x = 0;

   }

   

   public void mx()   //可以定义非抽象方法

   {

      x = x + 1;

   }

 

   public abstract int shoot();  //定义了抽象方法,但不能实现其主体,否则会报错。

}

 

 

//子类Gun继承了抽象类wp

class Gun extends wp   

{

  int gx;

  Gun()

  {

    super();   //调用了父类wp(抽像类的构造函数。调用父类的构造函数,必须在第一行。

    gx = 0;

  }

 

  public abstract int Boom();  //错误,抽象方法不可以在非抽象类中定义。

 

   public int shoot()  //实现了抽象方法的主体

   {

     gx = gx+1;

   }

}

 

 

 

(1)如果抽象父类的子类不能实现全部的抽象方法,那么,子类也要定义为抽象类

 

 

例子2:

 

abstract class wp   //通过abstract关键字描述了wp类为抽象类

{

   int x;

   wp()         //可以有构造函数,但是需要在子类的构造函数中调用。

   {

      x = 0;

   }

   public abstract mx()   //定义了抽象方法,但不能实现其主体,否则会报错。

   public abstract int shoot();  //定义了抽象方法,但不能实现其主体,否则会报错。

}

 

 

//子类Gun继承了抽象类wp

 在Gun类中只实现了wp类中的shoot抽象方法,但是,没有实现mx抽象方法

 所以,就要将Gun类定义为抽象类

abstract class Gun extends wp   

{

  int gx;

  Gun()

  {

    super();   //调用了父类wp(抽像类的构造函数。调用父类的构造函数,必须在第一行。

    gx = 0;

  }

 

   public int shoot()  //实现了抽象方法的主体

   {

     gx = gx+1;

   }

}

 

      

 

(2)父类不是抽象类,但是继承它的子类也可以定义为抽象类

 

 

例子3:

 

class wp   //定义了一个非抽象类wp

{

   int x;

   wp()         //可以有构造函数,但是需要在子类的构造函数中调用。

   {

      x = 0;

   }

}

 

 

//子类Gun继承了父类wp,并将子类Gun定义为抽象类

abstract class Gun extends wp   

{

  int gx;

  Gun()

  {

    gx = 0;

  }

 

  abstract public int shoot()  //定义了抽象方法shoot。

}

 

      

 

  非常好,现在,我们已经掌握了Java中的“abstract抽象类与方法”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

    

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练