2

I have questions about inheriting(extending) methods from classes and hiding some classes and methods from the main :)

Assume that I have class A & class B. Class B has method 1. and I need to use that method(method 1) in class A, but in the same time I need to hide that class(Class B with its methods) from the main.

I mean I want to deal with method 1 only from class A(or any other additional class, let's say Class C) I don't want it to be seen in the main. I don't want to give the possibility for the main to create an instance from Class B to use method 1. I need to do that, because when I create a jar file for my classes, there are classes that have methods that I don't want them to be shown. These classes I used them only when I did create the jar file.

How I can hide these classes and methods ?? I hope my explanation is clear...

Please don't tell me to do these things, because I thought of it, and it doesn't works : :)

1) to use private for the methods that I don't want them to be shown, because I can't do that. since, it's a separated classes not in the same class, and when I put private near the function , I can't use it at all, only it will works with the same class.

Also,

2) To put all the functions in the same class, Because I need to organize my code with classes with a separated files :)

Thanks alot Guys ....

1
  • Thank u all Guys, for ur appreciated help... all of your solution works with me and help me alot... Thanks again ;) Commented Sep 2, 2010 at 7:23

3 Answers 3

4

You can solve your problem by using different packages for your classes:

Put your class containing the main() method into package m. Then put class A in package a and make it public. Put class B in package a, too and make it only package protected (skip the public key word).

Now you can access class A from your main(), but you can't access class B.

Sign up to request clarification or add additional context in comments.

Comments

3

Most probably you want package protected methods. If you omit the visibility modifier (no public, protected or private) the method is visible for all classses in the same package.

Comments

0

I think you want protected access; these methods will be visible, callable, and overridable by subclasses, but hidden from other classes.

1 Comment

Thanks alot I use the protected for the methods and I omit (public) from the class... and it works just perfect ;)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.