Solved

Calling a Class

Posted on 2004-09-01
15
164 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
  • 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
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
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 125 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

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
type mismatch (Object[] to double[] 4 33
hibernate jars 4 45
Java: anonymous class 4 29
Is Applet the way to go for my drag and drop system? 8 25
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…
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
This video teaches viewers about errors in exception handling.

808 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