Java中父类怎么调用子类的方法
父类能调用子类的方法吗?
答:能。
怎么做?
- 把子类传递到父类的有参构造中,然后调用。
- 使用反射的方式调用,你使用了反射还有谁不能调用的?!
- 父类调用子类的静态方法。
案例展示:
package com.ywq;
public class Test2{
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(){
//方法3:使用反射的方式调用子类方法
try {
Class cls=Class.forName("com.ywq.Son");
Son son=(Son) cls.newInstance();
son.fun2();
} catch (Exception e) {
e.printStackTrace();
}
}
public void fun1(){
//方法1:把子类传递到父类的有参构造函数中,然后调用。
System.out.println("我是父类的方法");
son.fun2();
//方法2:父类调用子类的静态方法。
Son.fun3();
}
}
class Son extends Father{
public static void fun3(){
System.out.println("我是子类的静态方法");
}
public void fun2(){
System.out.println("我是子类的方法");
}
}
这三种都是父类直接调用子类的方法,
好用不?好用!
解决问题了吗?解决了!
项目中允许使用不?不允许!
我就一直没有搞懂为什么要用父类调用子类的方法。如果一定要调用子类,那为什么要继承它呢?搞不懂。其实这个问题可以换个角度去理解,父类建立框架,子类在重写了父类部分的方法后,再调用从父类继承的方法,产生不同的结果(而这正是模板方法模式)。这是不是也可以理解为父类调用了子类的方法呢?你修改了子类,影响了父类行为的结果,曲线救国的方式实现了父类依赖子类的场景,模板方法模式就是这种效果。
以上所述是小编给大家介绍的Java父类调用子类的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Java+Selenium调用JavaScript的方法详解
这篇文章主要为大家讲解了java在利用Selenium操作浏览器网站时候,有时会需要用的JavaScript的地方,代码该如何实现呢?快跟随小编一起学习一下吧2023-01-01
SpringBoot通过@MatrixVariable进行传参详解
这篇文章主要介绍了SpringBoot使用@MatrixVariable传参,文章围绕@MatrixVariable展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-06-06
基于@RequestBody和@ResponseBody及Stringify()的作用说明
这篇文章主要介绍了基于@RequestBody和@ResponseBody及Stringify()的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
Java修饰符abstract与static及final的精华总结
abstract、static、final三个修饰符是经常会使用的,对他们的概念必须非常清楚,弄混了会产生些完全可以避免的错误,比如final和abstract不能一同出现,static和abstract不能一同出现,下面我们来详细了解2022-04-04
Java序列化JSON丢失精度问题的解决方法(修复Long类型太长)
这篇文章主要给大家介绍了关于Java序列化JSON丢失精度问题的解决方法,修复Long类型太长的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2022-03-03


最新评论