Java 中父类怎么调用子类的方法? 和在子类调用父类的方法super

Java之super调用属性、方法和构造器 说明:Person类为Student类的父类 1、Person类 package com.atguigu.java3; public class Person { String name; int age; int id = 1001;//身份证号 public Person() { super(); } public Person(String name) { super(); this.name = name; } public Person(String name,i 阅读详情

父类能调用子类的方法吗?

答:能。

 

怎么做?

● 把子类传递到父类的有参构造中,然后调用。
● 使用反射的方式调用,你使用了反射还有谁不能调用的?!
● 父类调用子类的静态方法。

案例展示:

[java]  view plain  copy
  1. package com.ywq;  
  2.   
  3.   
  4.   
  5. public class Test2{   
  6.     public static void main(String[] args)  
  7.     {  
  8.         Son son = new Son();  
  9.         Father father=new Father(son);  
  10.         father.fun1();  
  11.         father.fun4();  
  12.     }     
  13. }  
  14. class Father{  
  15.     public Son son;  
  16.     public Father(Son son){       
  17.         this.son=son;  
  18.     }     
  19.     public Father() {  
  20.           
  21.     }  
  22.   
  23.     public void fun4(){  
  24.         //方法3:使用反射的方式调用子类方法  
  25.         try {  
  26.             Class cls=Class.forName("com.ywq.Son");  
  27.             Son son=(Son) cls.newInstance();  
  28.             son.fun2();  
  29.         } catch (Exception e) {  
  30.           
  31.             e.printStackTrace();  
  32.         }  
  33.     }  
  34.     public void fun1(){  
  35.         //方法1:把子类传递到父类的有参构造函数中,然后调用。  
  36.         System.out.println("我是父类的方法");  
  37.         son.fun2();  
  38.           
  39.         //方法2:父类调用子类的静态方法。  
  40.         Son.fun3();  
  41.     }         
  42. }  
  43.   
  44. class Son extends Father{  
  45.       
  46.     public static void fun3(){  
  47.         System.out.println("我是子类的静态方法");  
  48.     }  
  49.     public void fun2(){  
  50.         System.out.println("我是子类的方法");  
  51.           
  52.     }  
  53.       
  54. }  


 

这三种都是父类直接调用子类的方法,

      好用不?好用!

      解决问题了吗?解决了!

      项目中允许使用不?不允许!

我就一直没有搞懂为什么要用父类调用子类的方法。如果一定要调用子类,那为什么要继承它呢?搞不懂。其实这个问题可以换个角度去理解,父类建立框架,子类在重写了父类部分的方法后,再调用从父类继承的方法,产生不同的结果(而这正是模板方法模式)。这是不是也可以理解为父类调用了子类的方法呢?你修改了子类,影响了父类行为的结果,曲线救国的方式实现了父类依赖子类的场景,模板方法模式就是这种效果。

C#中子类调用父类的实现方法 主要介绍了C#中子类调用父类的实现方法,通过实例逐步分析了类中初始化构造函数的执行顺序问题,有助于加深对C#面向对象程序设计的理解,需要的朋友可以参考下 立即下载

相关推荐

a股level2数据接口的最优委托信息

Level-1提供的数据并不可以知道委托了xxx手是有多少人下的,以及每个人下了多少的明细。通过Level-2的这个详细买卖盘数据,盘口上的单子到底是散户小打小闹,还是主力真刀实枪在干,都一览无余。交易类型:1-市价,2-限价,3-本方优先,10-撤单, 11-暂不清楚( 基金/ 债券有此值)除了提供逐笔成交记录这个信息外,还提供了最优委托信息,也就是盘口中前50笔订单的委托数量明细。那么Level-2盘口委托数据的速度更新是非常快的,大家可以通过。交易方向:0-未知,1-买入,2-卖出。

Qq_2037696191的博客 1165

java父类获取子类对象、调用子类方法

1.Java中父类能调用子类的方法吗? 答案:能 1.1 实现方式描述 (1)父类中的抽象方法让子类实现并返回 (2)通过注册监听,然后通过回调接口调用子类相关方法 (3)在父类中通过反射调用子类的相关方法 (4)在父类中直接new子类相关对象或者通过构造函数传入子类对象,然后调用其方法 (5)将子类相关方法声明为static,在父类中调用子类的static方法 1.2 四种实现方式...

王温暖的博客 3万+

手把手教你设计T型和Π型衰减器:从分贝计算到电阻选型全攻略

本文提供了一份T型和Π型衰减器的详细设计指南,涵盖从分贝计算到电阻选型的全过程。文章以50欧姆系统为例,通过公式推导和实例演示,手把手教你计算两种经典拓扑的电阻值,并深入探讨了电阻选型、误差控制及高频应用等关键实践技巧,帮助工程师和爱好者精准实现信号衰减与阻抗匹配。

blue42的博客 1330

java 父类获取子类名称_java基础语法-小白笔记

java语言发展史:1.0(96年)->1.1(97年)->1.2(98年)->1.3(00年)->(02年)->5.0重大更新(04年)->6.0(06年)->7.0(11年)->8.0(14年)->9.0(17年)->10.0(18年.3月)->11.0(18年.9月)常量:在运行过程中不能修改的变量,null不能直接输出标识符...

weixin_39592315的博客 2213

[Linux外设驱动详解]RK3588 U-Boot网络功能深度分析

本文深入分析了RK3588平台上U-Boot的网络功能实现,主要内容包括: 网络架构:详细剖析了从硬件层到协议层的完整网络栈架构,包括GMAC驱动、TFTP/NFS启动、网络命令等关键组件。 驱动实现:重点介绍了RK3588 GMAC驱动结构,包含关键数据结构、专用操作函数集、设备树兼容性配置和GRF寄存器设置。 功能实现:详细说明了驱动初始化流程、RGMII速度适配机制以及PHY接口配置过程。 高级特性:涵盖了网络启动功能、镜像更新和MAC地址传递到Linux内核的机制。 文档通过代码片段和流程图清晰展示

Just Linux! 1111

手把手教你用STM32标准库写一个能OTA升级的Bootloader(附完整代码)

本文详细介绍了如何使用STM32标准库开发支持OTA无线升级的Bootloader系统,包括Flash分区规划、Bootloader核心实现、无线升级流程及安全校验机制。通过实战代码示例,帮助开发者快速掌握STM32固件升级技术,提升物联网设备的远程维护能力。

weixin_30181209的博客 262

Java中类关键字super的用法详解

在继承关系中,只要在子类中定义了和父类名称相同的属性,无论其类型是否相同,调用的都是子类中覆盖后的变量。 2.在子类中调用父类的方法 代码示例: 3.在子类中调用父类的构造方法 使用注意事项如下:

qq_53130059的博客 2403

ACPWorkbench_for_BP10

ADC支持9种采样率:8000Hz、11025Hz、12000Hz、16000Hz、22050Hz、24000Hz、32000Hz、44100Hz 以及 48000Hz。选择5种MCLK源时, 模块内部的MCLK源无效。I2S 采样率支持:8K,11.025K,12K,16K, 22.05K, 24K, 32K, 44.1K, 48K, 88.2K, 96K, 176.4K 和 192K。DAC采样率支持:8K,11.025K,12K,16K,22.05K, 24K, 32K, 44.1K和48K。

dddds222_的博客 4548

React 函数式组件之父组件调用子组件的方法

React.js 函数式组件,在父组件中调用子组件的方法

Cikayo的博客 2万+

ROS 2实战:用MoveIt Task Constructor让机械臂完成抓取任务(附避坑指南)

本文详细介绍了如何在ROS 2环境中使用MoveIt Task Constructor框架,为Franka Panda机械臂构建一个完整的拾取放置任务流水线。通过分解任务阶段、配置规划器并处理实际部署中的常见问题,帮助开发者从基础运动规划升级到可靠的多步骤任务编排,并附有核心避坑指南。

vvv99的博客 505

AI 赋能 DBA:如何用 DeepSeek 等大模型简化数据库管理工作

数据库管理员(DBA)的工作涉及 SQL 优化、故障排查、性能监控等复杂任务。而 DeepSeek、ChatGPT 等大模型可以大幅减少重复劳动,提高 DBA 的工作效率。:某电商平台的订单查询 SQL 执行缓慢(平均 5s),DBA 需要优化。:DBA 需要监控 MySQL 的慢查询,但不想手动写脚本。:某金融系统频繁出现数据库死锁,DBA 需要快速定位原因。:大模型可分析 SQL 执行计划,推荐索引优化方案。:用日常语言查询数据库,无需写复杂 SQL。:一键生成监控、备份、数据迁移脚本。

专注于编程、AI、人工智能等多个领域内容研究和分析 564

java 父类调用子类_【Java面试】父类能调用子类的方法吗?

文章开始前,我们先抛出一个链式问题:Java中父类能调用子类的方法吗?如果不可以,原因?如果可以,如何做?每种实现方式,在实际项目被允许吗?不被允许的原因有哪些?如果在实际项目中,的确有这样的特殊业务场景,应如何“正确的” - “变相”的去实现?1.Java中父类能调用子类的方法吗?答案:能1.1 实现方式描述(1)在父类中直接new子类相关对象或者通过构造函数传入子类对象,然后调用其方法(2)将...

weixin_34280781的博客 1729

ROS2入门到精通—— ROS2实战专栏(实时更新)

Nav2专栏介绍

BigDavid123的博客 2360

java,子类继承父类,在子类中,用this和super调用父类方法有什么区别

当有相同的属性或者方法是this子类表示调用自己的属性或者方法, super调用父类的属性或者方法。 当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法 ...

TomHaveNoCat的博客 2599

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java 方法重写校验注解@override、子类调用父类方法用super、私有方法和静态方法是否能被重写?

方法重写的校验注解: @override Java建议在重写的方法上面加上一个@override注解。 方法一旦加了这个注解,那就必须是成功重写父类的方法,否则报错。 @override优势:可读性好,安全,优雅。 方法重写的要求: 子类重写方法的名称和形参列表必须与父类被重写方法一样。 子类重写方法的返回值类型申明要么与父类一样,要么比父类方法返回值类型范围更小。 子类重写方法的修饰符权限应该与父类被重写方法的修饰符权限相同或者更大。 子类重写方法申明抛出的异常应该与父类被重写方法申明抛出的异常一样或

七七的博客 1097

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java父类私有方法的调用_Java 方法重写校验注解@override、子类调用父类方法用super、私有方法和静态方法是否能...

方法重写的校验注解: @overrideJava建议在重写的方法上面加上一个@override注解。 方法一旦加了这个注解,那就必须是成功重写父类的方法,否则报错。@override优势:可读性好,安全,优雅。方法重写的要求:子类重写方法的名称和形参列表必须与父类被重写方法一样。子类重写方法的返回值类型申明要么与父类一样,要么比父类方法返回值类型范围更小。子类重写方法的修饰符权限应该与父类被重写方...

weixin_42503446的博客 412

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java调用父类方法 super_Java super关键字:super调用父类的构造方法、利用super访问父类成员...

由于子类不能继承父类的构造方法,因此,要调用父类的构造方法,必须在子类的构造方法体的第一行使用 super() 方法。该方法会调用父类相应的构造方法来完成子类对象的初始化工作。在以下情况下需要使用 super 关键字:在类的构造方法中,通过 super 语句调用该类的父类的构造方法。在子类中访问父类中的成员。使用 super 调用父类的构造方法子类可以通过 super 关键字来调用一个由父类定义的...

weixin_42121725的博客 3388

Java修炼——继承_super父类对象的引用

Super是指直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法和属性。 当你调用子类的构造方法时,系统会默认给你先调用父类的构造方法,然后才会调用子类的构造方法。 package com.bjsxt.test; public class TestSuper02 { public static void main(String[] args) { System.out.pri...

欢迎来到我的博客,一起学习Java! 177

java 子类的同名方法_java 父类子类有同名方法时如何调用的实现

父类引用默认调用子类重写的方法如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法。父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间多态的效果。但是,父类的引用只能访问子类重写的方法,父类中没有的方法,父类的引用不能访问。也就是说,通过父类的引用来调用子类的方法时,不能访问到子类后来自己定义的方法。子类引用默认调用自定义的方法通过子类...

weixin_29332779的博客 2583

Java关键字super解释

java关键字应用,java关键字解释,super

ニャンコちゃん的博客 1万+

重写父类方法、super关键字、调用父类构造器——Java

注:本文参考《疯狂Java讲义》一书 重写父类方法 super 限定 子类调用父类构造器 重写父类方法子类扩展了父类,子类是一个特殊的父类。大部分时候,子类总是以父类为基础,额外增加新的成员变量和方法。但有一种情况例外:子类需要重写父类的方法。例如鸟类都包含了飞翔方法,其中有一种鸟是特殊鸟类——鸵鸟,因此它也会从鸟类获得飞翔方法,但这个飞翔方法明显不适合鸵鸟,所以,鸵鸟需要重写鸟类的方法。我们先看下

Amour 1万+

Java super关键字:super调用父类的构造方法、利用super访问父类成员

由于子类不能继承父类的构造方法,因此,要调用父类的构造方法,必须在子类的构造方法体的第一行使用 super() 方法。该方法会调用父类相应的构造方法来完成子类对象的初始化工作。 在以下情况下需要使用 super 关键字: 在类的构造方法中,通过 super 语句调用该类的父类的构造方法。 在子类中访问父类中的成员。 使用 super 调用父类的构造方法 子类可以通过 super 关键字来调用...

jijiangpeng的博客 1万+

super()在Java中的使用方法

在Java的类的继承中存在super的使用 尤其是经常出现在子类对父类方法的重写里面 super使用总共有三种 1. 即是上文的所说的子类对父类方法的重写的情况下,存在子类的方法里面存在父类的参与 用 super. 即可以使用(此时的super.某方面类似于this. 。只是this指向对象,而super指向父类)。 2.调用父类的构造方法 具体写为super(…) 3.调用父类的属性 ...

zhouyujiey的博客 2593

java中的super关键字

原文 一、定义 它是一个指代变量,用于在子类中指代父类对象。 二、应用 2.1 应用范围 只能用于子类的构造函数和实例方法中,不能用于子类的类(静态)方法中。原因是super指代的是一个父类的对象,它需要在运行时被创建,而静态方法是类方法,它是类的一部分。当类被加载时,方法已经存在,但是这时候父类对象还没有被初始化。 2.2 用法 在Java中super有两种使用场景。 2.2.1 在子类中调用父类的属性或方法 在子类中调用父类的属性或方法。特别是子类中有与父类相同的属性或者方法,那么这时如果你想调用

ss810540895的博客 4876
上一篇: java中类型转换异常问题 强制类型转换
下一篇: Java 强制类型转换(类转换注意事项) instanceof 用法
周末去看海
博客等级 码龄9年 50粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值