Q:

Drawing an image that is a property of an object in Java

Here is the setup:
I have a class called Sprite that contains an image for a subclass called Animal which is part of an array of animals in the World class. Using the Canvas class that does all of the graphics, how can I get to the image?
Survival.class - Main class
package survival;
import javax.swing.*;

public class Survival {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Survival");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(1000, 750);

        Canvas g = new Canvas();
        frame.add(g);

        frame.setVisible(true);

        World environment = new World(10, 25, 1000, 750);
        environment.step();
    }
}

Canvas.class - Handles all drawing
package survival;
import java.awt.*;
import javax.swing.*;

public class Canvas extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2D = (Graphics2D) g;
    }
}

World.class - Creates animals
package survival;

public class World {
    private int width = 1000;
    private int height = 750;

    private Animal[] animals;
    private Plant[] plants;

    public World(int animalNumber, int plantNumber, int width, int height) {
        this.width = width;
        this.height = height;

        animals = new Animal[animalNumber];
        for (int i = 0; i < animalNumber; i++) {
            animals[i] = new Animal(0,0);
        }

        plants = new Plant[plantNumber];
        for (int i = 0; i < plantNumber; i++) {
            plants[i] = new Plant(0,0);
        }
    }

    public void step() {
        for (int i = 0; i < plants.length; i++) {
            plants[i].move();
        }
        for (int i = 0; i < animals.length; i++) {
            animals[i].move();
        }
    }    

    public int getWidth() {
        return width;
    }
    public int getHeight() {
        return height;
    }
}

Sprite.class - Superclass of animal, contains the image!
package survival;

public class Sprite {
    private Image; //IMAGE I NEED!!!
    private double x;
    private double y;

    public Sprite(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public void move() {
        x += 1;
        y += 1;
    }

    public void setX(int x) {
        this.x = x;
    }
    public void setY(int y) {
        this.y = y;
    }
}

Animal.class - Subclass of animal
package survival;

public class Animal extends Sprite {
    public Animal(int x, int y) {
        super(x, y);
    }
}

A:

http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html
or
http://www.rgagnon.com/javadetails/java-0240.html

