Hi Everyone,

Instead of creating a public function.  It may help to employ "polymorphism"
as it was designed to be.  Instantiate the base class and assign it to
the object in use and call the method.


Here's an example code.  The output of this code is:
I am the toplevel class.
I am class A
I am class B

// PolyTest.java
// Test polymorphism in java

class Top {
   protected void doShow() {
      System.out.println("I am the toplevel class.");
   }
}
class A extends Top {
   public void doShow() {
      System.out.println("I am class A");
   }
}
class B extends Top {
   public void doShow() {
      System.out.println("I am class B");
   }
}
public class PolyTest {

 public static void main( String[] args ) {
   Top t = new Top();

   A a = new A();
   B b = new B();

   t.doShow();

   t = a;
   t.doShow();

   t = b;
   t.doShow();
 }

}



--
Antonio W. Lagnada
Ecommerce Consultant
[EMAIL PROTECTED]

This email address is specifically
for JSP-Interest email list.
Remove _NOSPAM for the actual email.



---- Shawn Zhu <[EMAIL PROTECTED]> wrote:
> Yep Namratha, you got 2 of the 3 ways I know.
> in summary,
> I can sort of achieve what I asked in the following:
> 1. interface
> 2. class inheritance
> 3. use of "InstanceOf"
>
> I've also thought about using Class and Method classes
> Like Venkatesh had mentioned, however, that does not
> work out.  Because we'll be looking for a method doShow()
> when we passed in Object which does not have such an method.
> It fails at compile time as well.
>
> After the above said, now lets say if you were only give
> Class A, B, And C, i.e. those class all have been created, like
> those prepackaged classes, you can't change their implementations.
> Now is it still possible to have a ShowAll method?
>
> > -----Original Message-----
> > From: Namratha Reddy [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, November 22, 2000 1:54 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: finally, something interesting!
> >
> >
> > You could accomplish this in one of many ways:
> > 1. Create an interface with the signature of the 'doShow'
> > method and make the
> > classes A, B, and C implement this interface.
> >
> > 2. Use inheritance: Create a class X and have classes A, B,
> > and C extend that
> > class.
> > and the doShow methods are defined as follows:
> >   in A:
> >   doShow()
> >   {
> >     System.out.println("Doshow method in Class A");
> >   }
> >
> >   in B:
> >   doShow()
> >   {
> >     System.out.println("Doshow method in Class B");
> >   }
> >
> >   in C:
> >   doShow()
> >   {
> >     System.out.println("Doshow method in Class C");
> >   }
> >
> > Then in the show method:
> >   public void show(X var)
> >   {
> >     var.doShow();
> >   }
> >
> > and in the calling method if you have the following:
> >   A var1 = new A();
> >   B var2 = new B();
> >   C var3 = new C();
> >
> >   show(var1);
> >   show(var2);
> >   show(var3);
> >
> > The output will be as follows:
> >   Doshow method in Class A
> >   Doshow method in Class B
> >   Doshow method in Class C
> >
> > Hope this helps.
> > > Scope: Java
> > > Q:
> > > if you have three class A, B, and C all have the same
> > method doShow();
> > > We only know that all inherit from Class Object (like all
> > other classes do).
> > >
> > > Is it possible to have a public function that takes in an
> > Class Object that
> > > may belong
> > > to A, B, or C, and call doShow()?
> > >
> > > Something conception like:
> > >
> > > public void show(Object o) {
> > >         o.doShow();
> > > }
> > >
> > > Of course the above code won't compile.  One way to hack it
> > is to use
> > > "InstanceOf" (one of the answer) but it's a unclean hack.
> > >
> > > Anyone has any better ideas?  I thought about going from
> > Object.getClass(),
> > > but it does
> > > not seem to be the way.
> > >
> > >
> > ==============================================================
> > =============
> > > To unsubscribe: mailto [EMAIL PROTECTED] with body:
> > "signoff JSP-
> > INTEREST".
> > > For digest: mailto [EMAIL PROTECTED] with body: "set
> > JSP-INTEREST DIGEST".
> > > Some relevant FAQs on JSP/Servlets can be found at:
> > >
> > >  http://java.sun.com/products/jsp/faq.html
> > >  http://www.esperanto.org.nz/jsp/jspfaq.html
> > >  http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
> > >  http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets
> >
> > Namratha Reddy
> > Staff Consultant
> > High Gear Inc.
> >
> > Phone: (262)814-1660 ext.522
> > E-Mail: [EMAIL PROTECTED]
> > www.high-gear.com
> >
> > ==============================================================
> > =============
> > To unsubscribe: mailto [EMAIL PROTECTED] with body:
> > "signoff JSP-INTEREST".
> > For digest: mailto [EMAIL PROTECTED] with body: "set
> > JSP-INTEREST DIGEST".
> > Some relevant FAQs on JSP/Servlets can be found at:
> >
> >  http://java.sun.com/products/jsp/faq.html
> >  http://www.esperanto.org.nz/jsp/jspfaq.html
> >  http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
> >  http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets
> >
>
> ===========================================================================
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
> For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST
> DIGEST".
> Some relevant FAQs on JSP/Servlets can be found at:
>
>  http://java.sun.com/products/jsp/faq.html
>  http://www.esperanto.org.nz/jsp/jspfaq.html
>  http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
>  http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets
>

___________________________________________________________________
To get your own FREE ZDNet Onebox - FREE voicemail, email, and fax,
all in one place - sign up today at http://www.zdnetonebox.com

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST".
Some relevant FAQs on JSP/Servlets can be found at:

 http://java.sun.com/products/jsp/faq.html
 http://www.esperanto.org.nz/jsp/jspfaq.html
 http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
 http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets

Reply via email to