一个是实现接口,自己实现全部方法;
另一个则是继承抽象类,然后根据需要重写方法。
定义一个接口,含有全部的方法
interface IAdd{
void add(int number);
void addAll(int[] numbers);
}
定义一个抽象类,只实现接口的部分方法
abstract class AbstractAdder implements IAdd{
@Override
public void addAll(int[] numbers) {
for(int number : numbers){
add(number);
}
}
}
使用抽象类就可以只实现部分的接口,不用实现全部的接口
class Base extends AbstractAdder{
private static final int MAX_NUMBER =1000;
private int[] array = new int[MAX_NUMBER];
private int count;
@Override
public void add(int number) {
if(count<MAX_NUMBER){
array[count++]=number;
}
System.out.println("array=="+ Arrays.stream(array).findFirst().getAsInt());
}
}
其他类可以正常使用这个类
public class TestInterface {
public static void main(String[] args) {
Base base = new Base();
base.add(10);
}
}