Ne nemůžete. Ne, že by to nešlo. Ale míjí se to s principem OOP.

Z názvů jsem nabyl dojmu, že se snažíte vytvořit z algoritmu vytvořit
datovou strukturu.

Spíš by to mělo být 

public interface Moveable 
{  
        public static void move();
}

a pak Book i Pencil by a) muzou by Hnutlné (Moveable)

Tj. to dělá přesně to o co se snažíte, ale zvažte:

Dá se Objectem o pohnout?

if(o instanceof Moveable)
        ((Moveable)o).move();

Ale taky by jste chtěl aby kniha nevěděla o tom, že se s ní dá hýbat,
nebo nechcete hýbat se všemi knihami a tužkami. Použití je dekorátor
tj.:

BookMover implements Moveable
{
        private Book book;

        public BookMover(Book book) { this.book = book; }
        
        public void move() { } //!
}

A pak tedy například (kdyby se říkalo v move odkud kam)

interface Container { ... vloz(Moveable m); odstran(Moveable m); }
class Stul implements Container
class Batoh implements Container
class Book // Pozor ne implements Moveable
class Pencil // Pozor ne implements Moveable
class BookMover implements Moveable
class PencilMover implements Moveable

BookMover implements Moveable { 
        public void move(Container source, Container target)
        {
                source.odstran(this.book);
                target.vloz(this.book);
        }
}

a ted kdyz si dam knihu ze stolu do batohu:

Stul stul = new Stul( Drevo.BUK, ...);
Batoh batoh = new Batoh ( Color.BLUE, ...);

Book book = new Book("Povidky z jedne kapsy");

BookMover bookMover = new BookMover(book);

bookMover.move(stul, batoh);

BookMover se rika dekorator tridy Book a vsimne te si, ze obohacuje
objekt dynamicky tj. na urovni instance.

Tak asi tak,

Karel


> >> ------------------------------------------
> >> Mohu nějak k této třídě napsat rozhranní, tak aby používalo přetížené 
> >> metody?
> >>
> >> Něco takového?
> >> public interface Algorithm {
> >>
> >>    public void move(Object o);
> >>
> >> }

Odpovedet emailem