Thread Vererbung (15 answers)
Opened by leo11 at 2009-06-29 20:00

pq
 2009-06-29 21:51
#122733 #122733
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
2009-06-29T19:03:10 leo11
Versteh ich nicht. Ist das erste eine alternative Schreibweise für
Code (perl): (dl )
@ISA = qw / CD::Music /

fast.
Code (perl): (dl )
use base qw/ CD::Music /;

entspricht
Code (perl): (dl )
1
2
use CD::Music; # oder require statt use
our @ISA = qw/ CD::Music /;

Quote
Quote
Ein use ist aber in jedem Fall nötig, um das Modul überhaupt zu laden.

Auch bei Vererbung?

ja, natürlich. mit einem use oder require wird das modul geladen und kompiliert. wenn du nur @ISA veränderst, passiert erstmal gar nichts.
Quote
Bei der Beschreibung der Nebenwirkungen von Arzneimitteln 1 bis 10 von 100. (-;

kann man trotzdem nicht beantworten =)
man kann sicher sagen, in Javaz.b. wird mehr Vererbung benutzt, weil da einfach so ziemlich alles eh ein Objekt ist.
Ansonsten könnte man alle Module zählen und schauen, wie viele use base, use parent (neuere alternative zu base) benutzen oder @ISA verändern.
Ich kann nur von mir selber sagen, dass ich bei grösseren Projekten meist objektorientiert arbeite, nur bei kleineren Helferlein nicht.

Zusätzlich/alternativ zu Vererbung gibt es übrigens auch CPAN:mixin (evtl. auch andere Implementierungen mittlerweile). damit erbt man sozusagen auch, aber nur bestimmte methoden; das kann ganz praktisch sein anstelle mehrfachererbung. (klassisches beispiel ist das viereck mit den unterklassen raute und rechteck, und ein quadrat ist gleichzeitig eine raute und ein rechteck)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Vererbung