package src::bo::Whistle; use strict; use warnings; use Carp; use src::bo::Duck; use base qw/src::bo::Duck/; use src::bo::behaviour::fly::CannotFly; use src::bo::behaviour::quack::CannotQuack; sub new { my $class = shift; my $flyBehaviour = src::bo::behaviour::fly::CannotFly->new(); my $quackBehaviour = src::bo::behaviour::quack::CannotQuack->new(); my $extends = $class->SUPER::new( @_ ); $extends->setFlyBehaviour( $flyBehaviour ); $extends->setQuackBehaviour( $quackBehaviour ); bless ( $extends, $class ); return $extends; } 1;