在了解抽象类之前,先了解一下抽象方法。
抽象方法是一种特殊的方法:只有声明,没有具体的实现(没有函数体)。
抽象方法声明格式为:
abstract void fun();//没有大括弧“{ }”
抽象类注意点:
1、抽象方法或抽象类必须要用abstract修饰。
2、只有抽象类才能含有抽象方法。
3、抽象类中因无具体实现的方法,所以无法创建对象。
4、也可以定义成员变量。
5、如果抽象类除了抽象方法外什么都没有,则使用接口更合适。
6、抽象类为继承而存在,只有继承它,它才有用
抽象类定义:
[public] abstract class className{
abstract void fun();
}
抽象类和普通类的区别:
1、抽象方法必须是public或protected(因为如果是private则不能被继承,则不能被实现)缺省情况下默认为public
2、抽象类不能用来创建对象
3、如果一个类继承一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类
例:
abstract class Shape{
abstract double getArea();
abstract double getPerimeter();
}
//抽象类Shape
class Rectangle extends Shape{
int a,b;
public Rectangle(int a,int b){
this.a=a;
this.b=b;
}
}
public double getArea(){
return a*b;
}
public double getPerimeter(){
return 2*(a+b);
}//继承抽象类的方法