问答详情
源自:10-1 Java 中的多态

课后练习,问题在哪儿啊

交通方式:

https://img4.mukewang.com/5c7e338800015c6b06320309.jpg

客车:

https://img3.mukewang.com/5c7e33b20001d4a604790242.jpg

轮渡:

https://img1.mukewang.com/5c7e33d0000168ab05030252.jpg

飞机:

https://img2.mukewang.com/5c7e33e700011b1b05150244.jpg

测试:

https://img.mukewang.com/5c7e33f8000147e206650229.jpg

提问者:php天下第一 2019-03-05 16:32

个回答

  • SunnyLee4195125
    2019-03-16 15:56:09

    首先,super表示调用父类的方法,this表示调用本类的方法,super和this都只能放在方法的第一行,所以不可能同时出现。所以super应该写在子类的方法中调用父类的方法,你的Transport类应该去掉super();(其实不去掉也行因为在3-7章写了super();属于系统默认的隐式)

    https://img.mukewang.com/5c8ca7f50001e94e07640375.jpg

    然后,Bus类继承了Transport类,就不需要再声明对象,也不需要this(记住this不能super共用)

    创建一个Bus无参的构造方法,再通过super(参数)给对象赋值,参数的顺序要跟你在父类声明的顺序一样哦

    https://img.mukewang.com/5c8ca9a90001fe8004740231.jpg

    需要注意的是:如果父类的方法是private修饰的,super调用就不会成功

    https://img.mukewang.com/5c8cab200001fbfc07320150.jpg

    https://img1.mukewang.com/5c8cab6300013f6404860090.jpg


    接下来的子类都是这种方法

    https://img1.mukewang.com/5c8ca9e300014bac04950176.jpg

    https://img.mukewang.com/5c8ca9f50001333c05050183.jpg

    最后在测试类运用这节课学到的知识,就能运行成功啦~

    https://img4.mukewang.com/5c8cabde0001434105860316.jpg

    https://img.mukewang.com/5c8cac1100012fa805260111.jpg

  • Jenny李
    2019-03-11 18:02:03

    或许这样更简单些
    https://img2.mukewang.com/5c86319d0001056310240528.jpg

    https://img1.mukewang.com/5c8631ad0001582305910320.jpg


    https://img4.mukewang.com/5c8631c00001d37d06750341.jpg

    https://img1.mukewang.com/5c8631d20001b50006800281.jpg

    https://img3.mukewang.com/5c8631df000130fd07900456.jpg

  • qq_慕数据5373953
    2019-03-05 18:38:53

    父类的函数不能访问子类的私有成员变量