java 继承 多态-请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法

问题描述

请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法

public class TestA {

public static void main(String[] args) {
    TestA a = new TestA();
    a.start();

}

public void start(){
    B b = new B();
    b.funA();
}

public abstract class A {
    public void funA(){
        System.out.println("I'm funA in A ");
        funB();
    }

    abstract void funB();
}

public class B extends A{

    @Override
    public void funA() {
        super.funA();
    }

    @Override
    void funB() {
        System.out.println("I'm funB in B");
    }

}

}

我就是想问为什么调用父类方法后,父类为什么调用的是子类的方法,不是调用抽象么,抽象不是不能被调用么

时间: 2024-09-20 19:49:25

java 继承 多态-请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法的相关文章

请问下这段代码执行什么功能

问题描述 classBase{protectedintb_data;publicvoidf(intnum1,intnum2){System.out.println(this.b_data+"Base.f()"+num1+""+num2);}publicvoidg(intnum1,intnum2){System.out.println(this.b_data+"Base.g()"+num1+""+num2);}publicBas

ajax-请问下这段代码有什么问题,数据也已经返回了

问题描述 请问下这段代码有什么问题,数据也已经返回了 <%@ page language="java" pageEncoding="UTF-8"%> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-2.1.1.js"></script> <script type=&quo

代码分析-JAVA 求大神帮看下这段代码 怎么修改 救命啊

问题描述 JAVA 求大神帮看下这段代码 怎么修改 救命啊 真心看不懂 public static char[] a(char[] paramArrayOfChar) { char[] arrayOfChar1 = new char[12]; char[] arrayOfChar2 = new char[12]; arrayOfChar2[0] = '?'; arrayOfChar2[1] = '?'; arrayOfChar2[2] = 'o'; arrayOfChar2[3] = '/';

java后台逻辑问题-求大神帮忙解释下这段代码。

问题描述 求大神帮忙解释下这段代码. 这是一个从表添加页面的代码.currentx是当前页数.我想问下 st st1 st2 st3是什么意思,就是split(:):这个方法我不是很清楚什么意思,还有下面的!ss.equals("t") t是什么. 传参什么的我晓得. @RequestMapping("/addProcess.do") public String addProcessMaintenance(String currentx, String ids, S

c语言数组定义-哪个大神能帮我解释下这段代码,在线等

问题描述 哪个大神能帮我解释下这段代码,在线等 这个是凯撒密码的代码,哪个大神帮我看哈我的这个里面每句的意思 解决方案 把英文字母变换一下,如D换为AA换为X,B换为Y 解决方案二: 就是获取到输入的字符串,然后对每一位进行判断,如果在区间[dz]或区间[DZ]减3,剩下的加23 解决方案三: 就是获取到输入的字符串,然后对每一位进行判断,如果在区间[dz]或区间[DZ]减3,剩下的加23 解决方案四: 就是获取到输入的字符串,然后对每一位进行判断,如果在区间[dz]或区间[DZ]减3,剩下的加

c++-请问下面这段代码的意思:C++ 中的冒号操作符

问题描述 请问下面这段代码的意思:C++ 中的冒号操作符 PaketRouter类里有一个成员: // Map from ssrc to sending rtp module. std::list rtp_modules_ GUARDED_BY(crit_.get());请问下面的函数里冒号是什么意思? bool PacketRouter::TimeToSendPacket(uint32_t ssrc uint16_t sequence_number int64_t capture_timest

图片-谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂

问题描述 谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂 解决方案 就是一般的配置文件呀,用来程序动态读取数据的,数据维护简单方便,可以用来存储一些不太重要的数据, 具体实现可以用java,c#等等,相关java类有,XmlDocument,XmlElement 解决方案二: 存数据的文件,类似数组.json:只不过规则不同,不是key value了

帮忙看下这段代码,为啥那个afafafa没有打印出来?

问题描述 帮忙看下这段代码,为啥那个afafafa没有打印出来? public class Demoe { public void f() { System.out.println("Throwing MyException from f()"); } public static void main(String[] args) { Demoe aa = null; try { aa.f(); throw new NullPointerException("afafafa&q

javascript-求解释下这段代码,可怜可怜我这个新手吧,拜托了,各位大神

问题描述 求解释下这段代码,可怜可怜我这个新手吧,拜托了,各位大神 求解释下这段代码,最主要的是详细解释下条件语句和 onclick,那个好像是各种嵌套吧,所以我希望大神们能一个点一个点的讲~拜托了,各位大神,可怜可怜我这个新手吧, <s:form action="Save" id="form1" theme="simple" > <div class="buttonDiv"> <s:submit