淘先锋技术网

首页 1 2 3 4 5 6 7

在Java中,接口和抽象是两种常见的抽象类型。它们都可以用来定义一些规范或者协议,让其它类来实现或继承,以达到代码复用的目的。

接口是一种纯粹的抽象类型,它只定义了一些方法的签名,没有任何实现体。下面是一个例子:

public interface Drawable {
void draw();
}

在上面的例子中,我们定义了一个Drawable接口,它只有一个方法draw(),没有实现。其它类如果想要实现Drawable接口,就必须要实现draw()方法,否则编译会报错。

抽象则是在一定程度上已经实现了,但仍然不是完整的类。我们通常会将一些通用的实现放到抽象类里面,让子类来继承并覆盖其中的一些实现。下面是一个例子:

public abstract class Shape {
protected int x;
protected int y;
public Shape(int x, int y) {
this.x = x;
this.y = y;
}
public abstract void draw();
}

在上面的例子中,我们定义了一个Shape抽象类,它包含了x和y两个成员变量,以及一个构造函数和一个抽象方法draw()。Shape抽象类中并没有实现draw()方法,因为每个Shape的子类都有可能有自己的绘制方式,所以由子类来实现这个方法。