Java学习——38、类的抽象性
抽象是研究复杂对象的基本方法,从复杂对象中抽象出本质特征,忽略次要细节,使某些信息和实现对于使用者不可见。抽象层次越高,其软件利用程序越高。
1、抽象类
使用关键字abstract声明的类为抽象类。
抽象类用于描述抽象概念。
一般用于其他类的父类。
比如:图形类。此为一个抽象类,每种图形都有位置、尺寸等属性,画不出一个没有任何形状、没有任何大小的图形。
public abstract class Figure {
public abstract void cut();//抽象方法
}
2、抽象方法
用关键字abstract声明的方法为抽象方法。
抽象方法只有方法声明,没有方法体,以;结束。
如上代码定义了抽象方法publicabstractvoid cut();
抽象方法提供方法声明与方法实现相分离。在抽象类中定义抽象方法,在实例类中进行实现。
3、注意
(1)构造方法、静态方法不能被声明为抽象方法。
(2)抽象方法必须声明在抽象类中。
(3)抽象类中可以不含有抽象方法。
(4)如果一个类继承抽象类,必须实现抽象类中的所有抽象方法。否则,该类必须声明为抽象类。
(5)抽象类要放在一个单独的文件中。
4、简单例题
package learn;
public abstract class Figure {
public abstract double area();//面积
public abstract double zhouchang();//周长
}
//Circle类
package learn;
public class Circle extends Figure{
private double radius;
public Circle() {
radius=1.0;
}
public Circle(double radius) {
this.radius=radius;
}
public double getRadius() {
return radius;
}
public double area() {
return Math.PI*radius*radius;
}
public double zhouchang() {
return 2*Math.PI*radius;
}
public static void main(String args[]) {
Circle c=new Circle();
System.out.println("半径为"+c.getRadius()+"的圆\n面积为:"+c.area()+"\n周长为:"+c.zhouchang());
Circle c1=new Circle(3.3);
System.out.println("半径为"+c1.getRadius()+"的圆\n面积为:"+c1.area()+"\n周长为:"+c1.zhouchang());
}
}
其运行结果为:
半径为1.0的圆
面积为:3.141592653589793
周长为:6.283185307179586
半径为3.3的圆
面积为:34.21194399759285
周长为:20.734511513692635