// Inheritance: design practice // Strawberry class public class Strawberry { private boolean isEaten; private boolean isWashed; public Strawberry() { isEaten = false; isWashed = false; } // If strawberry is washed, eat it (return 0). // Else return 1. public int eat() { if (!isEaten && isWashed) { isEaten = true; return 0; } return 1; } // Wash the strawberry. public int wash() { if (!isEaten && !isWashed) { isWashed = true; return 0; } return 1; } public String toString() { return "This strawberry " + (isWashed? "is" : "isn't") + " washed." + " It " + (isEaten? "has" : "hasn't") + " been eaten."; } public static void main(String[] args) { Strawberry b = new Strawberry(); System.out.println("b is: " + b); System.out.println("Eating: " + b.eat() + " = " + b); System.out.println("Washing: " + b.wash() + " = " + b); System.out.println("Eating: " + b.eat() + " = " + b); System.out.println("Washing: " + b.wash() + " = " + b); } }