实现

  • 把子类传递到父类的有参构造中,然后调用
  • 使用反射的方式调用
  • 父类调用子类的静态方法
package Quote;

public class demo {
public static void main(String[] args) {
Son son = new Son();
Father father = new Father(son);
father.fun1();
father.fun4();
}
}

class Father{
public Son son;
public Father(Son son)
{
this.son = son;
}
public Father(){}

public void fun4()
{
try{
Class cls = Class.forName("Quote.Son");
Son son = (Son)cls.newInstance();
son.fun2();
}catch (Exception E)
{
E.printStackTrace();
}
}

public void fun1(){
System.out.println("parent method");
son.fun2();
son.fun3();
}
}
class Son extends Father{
public static void fun3()
{
System.out.println("我是子类的静态方法");
}
public void fun2()
{
System.out.println("我是子类的方法");
}
}

这三种方法都可以实现父类直接调用子类的方法。