Have a look at this example:
class Parent{
Child child = new Child();
Random r = new Random();
}
class Child{
public Child(){
//access a method from Random r from here without creating a new Random()
}
}
How can I access the Random object from within the Child object?
First of all your example doesn't demonstrate parent child relationship in java.
Its only a class using another type reference.
in this particular case you can only do new Parent().r //depending upon r's visibility.
or you can pass the Parent reference to Child (by changing Child's constructor).
In actual inheritance you don't need to do anything, the super class's members are inherited by extending classes. (again available in child class based on their visibility)
more at : http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
It may be the case that if only your
Parent
class ever creates instances ofChild
, for its own internal use, then you could use inner classes, like so:There are other reasons why you may want to use inner classes. But, I'm hesitant to suggest them, because requiring access to another class's instance variables is generally not a good practise.
Have the
Parent
class pass its own instance ofRandom
to theChild
class.Classic Occam's razor.
Yes, If it is static method , you can do that (
Random.methodName()
).If it is an instance method, A big Noooooo. You definitely need
Random
instance.