2008-11-26 7 views

Répondre

4

Non Vous devez d'inclure toutes vos définitions de fonction à l'intérieur du bloc de classe. Si vous définissez vos fonctions dans une structure séparée, vous vous sentez mieux, vous pouvez utiliser une interface.

interface iBar 
{ 
    function foobar(); 
} 


class cBar implements iBar 
{ 
    function foobar() 
    { 
     //Code 
    } 
} 

Je suggérerais juste de m'habituer à coder d'une manière nouvelle. Il est facile de coder constamment dans une seule langue, mais je pense que vous vous battez si vous voulez faire la même chose d'une langue à l'autre.

+0

Tout le monde a donné de bonnes réponses. Mais j'ai choisi votre réponse à cause de cette citation: Il est facile de coder constamment dans une seule langue, mais je pense que vous vous battez si vous voulez faire la même chose d'une langue à l'autre. – MrValdez

1

Vous ne pouvez pas vraiment faire cela de la même manière. Cependant, vous pouvez utiliser class abstraction et interfaces. La principale différence entre les deux est que l'interface ne vous permet pas de spécifier le corps de la fonction, où les méthodes (non abstraites) dans un objet abstrait peuvent contenir tous les types de comportement par défaut.

Abstraction:

abstract class cBar 
{ 
    // MUST be extended 
    abstract protected function foobar(); 

    // MAY be extended 
    protected function someMethod() 
    { 
     // do stuff 
    } 
} 

class cBarExtender extends cBar 
{ 
    protected function foobar() 
    { 
     // do stuff 
    } 

} 

Entoilage:

interface cBar 
{ 
    // MUST be implemented 
    protected function foobar(); 
} 

class cBarImplementation implements cBar 
{ 
    protected function foobar() 
    { 
     // do stuff 
    } 
} 
0

La langue ne fournit pas vraiment cette fonctionnalité, mais si vous vraiment voulez, vous pouvez installer l'extension ClassKit qui vous permettra de faire quelques modifications de classe dynamique lors de l'exécution.

Questions connexes