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抽象类与方法”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)