定义:在面向对象的概念中,所有的对象都是通过类来表述,但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一类具体的对象,这样的类就是抽象类。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
抽象类需要注意以下几点:
1.abstract放在class前,指明该类是抽象类
2.abstract放在方法声明中,则该方法是抽象方法,抽象方法没有方法体
3.一个抽象类可以含有多个抽象方法,也可以含有已实现的方法
4.抽象方法必须在子类中被实现,除非子类是抽象类
5.抽象类不能实例化,但可以指向一个实现它的子类对象;
6.abstract不能与final同时修饰一个类;
7.abstract不能和static、private、final或native并列
举例:
先建立一个抽象类Shape
package com.dzc.demo;
public abstract class Shape {
double dim;//边长或半径等
public Shape(double dim) {
this.dim=dim;
}
//抽象方法,获得面积
public abstract double callArea();
//抽象方法,获得周长
public abstract double callPerimeter();
}
再建立一个Circle类继承Shape类
package com.dzc.demo;
/**
*圆形
*/
public class Circle extends Shape {
public Circle (double dim) {
super(dim);
}
/**
* 计算面子
*/
public double callArea() {
return 3.14*dim*dim;
}
/**
* 计算周长
*/
public double callPerimeter() {
return 2*3.14*dim;
}
测试
public static void main(String[] args) {
Shape circle=new Circle(10);
System.out.println(circle.callArea());
System.out.println(circle.callPerimeter());
}
}