public abstract class AbstractTool { protected ArrayList ledger; public AbstractTool() { ledger = new Array
Shouldn't it rather be Tool extends AbstractTool?
Tool extends AbstractTool