You're doing it wrong.
When you declare boolean isUsefull in superclass Crop its default value is false. Then when you create subclass millets with declared boolean isUsefull=true you don't overwrite the superclass variable value, you create a new one. If you want to owerwrite the value of superclass variable either use a constructor
millets() { isUsefull=true;}
or use a init block
{isUsefull=true;}
outside of any method body in millets class.