什么是抽象类呢?
抽象类指不能直接被实例化的类,必须由子类创建对象。抽象类一般作为其他类的超类,抽象类中的抽象方法只需声明,由继承类提供实现。
抽象类用哪个关键字来修饰呢?
抽象类用关键字abstract来修饰,同样,用abstrat关键字来修饰一个方法时,这个方法就叫做抽象方法。
例如:
abstract class AbstractClass{……}//抽象类
abstract class AbstractMethod{…..}//抽象方法
抽象类必须被继承,抽象方法必须被重写。
一个抽象类只关心它的子类是否具有某种方法,并不关心功能的具体行为,功能的具体行为是由子类负责实现的。如果一个类中定义了抽象方法,则该类必须被定义为抽象类。如果一个类是抽象类的子类,那么它必须实现父类的抽象方法。当然,抽象类中也可以没有抽象方法。
下面是一个抽象类应用的例子,就是定义一个抽象类shape,shape类里有两个抽象方法,分别是求周长和求面积用的。
package test;
abstract class shape//抽象类
{
abstract int area();//抽象方法area
abstract int circumference();//抽象方法circumference
}
class rectangle extends shape//rectangle类继承自抽象类shape
{
private int length,width;
rectangle(int l,int w)//构造函数
{
length=l;
width=w;
}
int area() //对父类中抽象方法的实现
{
return length*width;
}
int circumference()//对父类中抽象方法的实现
{
return 2*(width+length);
}
}
class Demo
{
public static void main(String []args)
{
rectangle r=new rectangle(5,4);//声明一个对象并对其进行初始化
System.out.println("面积为:"+r.area());
System.out.println("周长为:"+r.circumference());
}
}
上面的例子在子类中重写了继承自父类的抽象方法。
抽象类非常重要,需要深刻理解