あなたはいくつかの方法でそれを行うことができます:
extendedクラスでクラスの参照を持っていますMyObject。MyObjectクラスで変数をインスタンス化するときはextended、の参照を渡しますextended。
このようなもの:
class MyObject{
private base baseObj;
public MyObject(base baseObj){
this.baseObj = baseObj;
}
public void DoSomething()
{
//here I need to call method add from class base.
//use baseObj to call the methods
}
}
class base
{
protected final void add(){}
}
class extended extends base {
private MyObject pObject;
...
public extended(){
pObject = new MyObject(this);
}
{
pObject.DoSomething();
}
}
baseクラスでメソッドを宣言しますstatic。baseこのようにして、クラスのインスタンスを必要とせずにメソッドを呼び出すことができます。
このようなもの:
class MyObject{
public void DoSomething()
{
//here I need to call method add from class base.
//call like this
base.add();
}
}
class base
{
protected static final void add(){}
}
class extended extends base {
private MyObject pObject;
...
public extended(){
pObject = new MyObject(this);
}
{
pObject.DoSomething();
}
}
もう1つ:これはトピックから外れていますが、Javaの命名規則について読むことをお勧めします。クラス名を小文字で始めることは、命名規則にはないものです。