javase 抽象类

抽象类

在面向对象的概念中,所有的对象都是通过类来表述,但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一类具体的对象,这样的类就是抽象类。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

抽象类的使用

抽象类需要注意以下几点:

abstract放在class前,指明该类是抽象类
abstract放在方法声明中,则该方法是抽象方法,抽象方法没有方法体
一个抽象类可以含有多个抽象方法,也可以含有已实现的方法
抽象方法必须在子类中被实现,除非子类是抽象类

抽象类示例

建立Shape类

package com.ckx.demo;

public abstract class Shape {
	double dim;
	public Shape(double dim) {
		this.dim = dim;
	}
	/*
	 * 计算面积
	 */
	public abstract double callArea();
	/*
	 * 计算周长
	 */
	public abstract double callPerimeter();
		
	
}

建立子类Cirle


package com.ckx.demo;

public class Cirle extends Shape{

	public Cirle(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 cirle = new Cirle(10);
		
		System.out.println(cirle.callArea());
		System.out.println(cirle.callPerimeter());
	}
	
}

注意:

抽象类虽然具备类的形式,但由于其“抽象”性,不能定义抽象类的实例,即不能为抽象类分配具体空间,
抽象类不能实例化,但可以指向一个实现它的子类对象;
abstract不能与final同时修饰一个类;
abstract不能和static、private、final或native并列

你可能感兴趣的:(javase)