[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

Calling a Class

Posted on 2004-09-01
15
Medium Priority
?
168 Views
Last Modified: 2013-11-23

I have 3 Classes, Class A, Class B and Class C.

Class A has makes calls to 2 methods func1() which is found in Class B and func2() found in Class C.

Class A extends Class B, so now func1() is accessable.

but How does Class A Call func2() which is in class c without, as java does not support multiple inheritance.

also i don't want multi-level inheritance, where in Class B extends Class C, that's not advisable.

how do i solve the problem?
0
Comment
Question by:astonMarton
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +4
15 Comments
 
LVL 18

Expert Comment

by:armoghan
ID: 11960690
instantiate the class c in Class A and call the method
0
 
LVL 18

Expert Comment

by:armoghan
ID: 11960696
Implement interfaces
0
 
LVL 8

Expert Comment

by:thomas908
ID: 11960704
class A extends B {
   new C().func2();
}

class B {
   func1() {}
}

class C {
   func2() {}
}
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 6

Expert Comment

by:expertmb
ID: 11960709
have an object of Class c in your Class A.
0
 
LVL 8

Expert Comment

by:thomas908
ID: 11960710
or
class A extends B {
  C c = new C();
   c.func2();
}
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11960752
abstract Class D
func2 //here the body of the method

Class B extends D
func1 //here the body of the method

Class C extends D

Class A extends B
//here you can use both func1 and func2

Hope this help you.
Bye, Giant.
0
 
LVL 6

Expert Comment

by:expertmb
ID: 11960758
>>where in Class B extends Class C, that's not advisable
0
 
LVL 92

Expert Comment

by:objects
ID: 11960809
> How does Class A Call func2() which is in class c without, as java does not support multiple inheritance.

It can't, without having an instance of class C.
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11960860
expertmb,

I told:
Class B extends D
and not: Class B extends Class C
0
 
LVL 6

Expert Comment

by:expertmb
ID: 11960881
giant2,

>>and not: Class B extends Class C
i guess he dont want to extend B from anyother class.
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11960894
expertmb,

>>>and not: Class B extends Class C
>i guess he dont want to extend B from anyother class.

following what astonMarton told in the request, the only restriction is not on anyother, but only on C.
So, astonMarton must say what is the correct interpretation (I believe).

;-)
0
 
LVL 3

Expert Comment

by:RuadRauFlessa
ID: 11961034
If your solution prohibits it try looking at static methods. It allows you to call the method without having an instance of the class. However you will only be able to read and or write static variables within the class which the static method resides.

public class A {
  public void M1 () {
    //now call the methods directly through the class name rather than an instance of B or C
    //however if you have an instance of B or C you can also call it from the instance.
    B.M2 ();
    C.M3 ();
  }
}

public class B {
  private int count; // you cannot address this in M2
  private static int count2; //you can address this in M2

  public static void M2 () {
    //do whatever method needs to do
  }
}

public class C {
  private int count; // you cannot address this in M3
  private static int count2; //you can address this in M3

  public static void M3 () {
    //do whatever method needs to do
  }
}

Is there a specific reason why you need to extend from Class B???
0
 
LVL 6

Accepted Solution

by:
valipotor earned 500 total points
ID: 11961382
use a inner class that extends C
in the inner class you can calll any methods from B and C
then create a wrapper method for the methods of the inner class

public class A extends B
{
   class innerA exends C
   {
      public void execute()
     {
        func1();
        func2();
     }
   }
   public void execute()
   {
    innerA a=new innerA();
    innerA.execute();
   }
}

valipotor
0
 
LVL 6

Expert Comment

by:valipotor
ID: 11961425
my mistake ;)

  public void execute()
   {
    innerA a=new innerA();
    a.execute();
   }
0
 
LVL 12

Expert Comment

by:Giant2
ID: 12166828
???
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question