Number generators

Report a typo

Here's a class hierarchy of magic number generators.

class BaseNumberGenerator {
    
    protected int base;
    
    public BaseNumberGenerator(int base) {
        this.base = base;
    }
    
    public int generate() {
        return base + 11;
    }
}

class NumberGenerator extends BaseNumberGenerator {
    
    
    public NumberGenerator(int base) {
        super(base);
    }
    
    @Override
    public int generate() {
        
        return super.generate() + getNumber();
    }
    
    
    protected int getNumber() {
        return this.base - 7;
    }
}

class MagicNumberGenerator extends NumberGenerator {
    
    
    public MagicNumberGenerator(int base) {
        super(base);
    }
    
    @Override
    protected int getNumber() {
        return this.base + 7;
    }
}

You have an instance:

BaseNumberGenerator generator = new MagicNumberGenerator(10);

Enter the result of invoking generator.generate().

Enter a number
___

Create a free account to access the full topic