Function foo receives also a interface? So, when a class implements a interface that class have to respect the contract with that interface and make it public. So the class Class1 must have the public method foo with the correct signature then a external class can call the method from class1 like this.
Var myclass:Class1= new Class1(); myclass.foo(); ... This is The basic. Maybe another Approach to explain your Problem someone can try to help you better. Miguel Sent from my Windows Phone ________________________________ From: Martin Miko<mailto:[email protected]> Sent: 09.10.2013 20:13 To: [email protected]<mailto:[email protected]> Subject: Re: Interface question Hi Mark, I do not see a reason to use it the way you do, however, due to design limitations it might make sense. As Maurice pointed out, if this interface is not inherited and thus implemented on the superclass and you want to call it in that overriden function, there is no other way. And consider that you'd have to call this function anyway, if you want to add the functionality that foo() provides into the overriden function. Even without making it required public API, enforced by an interface. Martin On Wed, Oct 9, 2013 at 7:53 PM, mark goldin <[email protected]> wrote: > In my experience using SDK components when I use an interface I usually > just implement its methods, but dont have to aslo call these methods in the > same class that implements the interface. I am might be wrong altogether. > > > On Wed, Oct 9, 2013 at 12:47 PM, Maurice Amsellem < > [email protected]> wrote: > > > > The class has a function foo that is coming from the Interface > > implementation and it also calls this function. > > Do you mean the class "Class1" has a function foo that is coming from the > > "IComponent" Interface implementation and it also calls this function. > > > > If so, then of course it will call it. That's the basics of OOP. > > > > So what do you mean "But it just does not look right" ? compilation > error > > ? > > > > Maurice > > > > -----Message d'origine----- > > De : mark goldin [mailto:[email protected]] > > Envoyé : mercredi 9 octobre 2013 19:41 > > À : users > > Objet : Interface question > > > > I have a class: > > public class Class1 extends SkinnableContainer implements IComponent { > > > > } > > public interface IComponent > > { > > function foo(component:IComponent):void; } > > > > So, if Class1 implements IComponent it has to have the following method: > > public function foo(component:IComponent):void { > > // implementation > > } > > I am calling foo like this: > > override protected function childrenCreated():void { > > super.childrenCreated(); foo(this); } > > > > But it just does not look right. The class has a function foo that is > > coming from the Interface implementation and it also calls this function. > > Is that right? > > > > Thanks > > >
