jwp1991 2010-08-03 13:11
浏览 192
已采纳

Java中的多态,请高手给我讲解

课本上面的原话:
1.子类重写父类的方法
2.把父类类型作为参数类型,该父类及其对象作为参数传入
3.运行时,根据实际创建的对象类型动态使用哪个方法
上传的附件里面关于继承的就不要讲了,多和我说说多态
hq.judge(new AccpJava("李明","北京中心"));
hq.judge(new AccpDot("张华","天津中心"));

这两句话new AccpJava怎么理解

  • 写回答

5条回答 默认 最新

  • iteye_15772 2010-08-03 15:02
    关注

    首先多态是什么,是数据抽象和继承之后的第三种基本特性。可以有效的将接口和实现分离,也消除了类型之间的耦合性。

    通常多态也称作后期绑定、动态绑定和运行时绑定。这个我就不解释了,下面我通过多态的常用特性“向上转型和向下转型”来解释下。

    拿你ppt后面的题目来讲解:

    乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin)
    各种乐器的弹奏( play )方法各不相同。

    Instrument是个父类,Piano、Violin分别继承自父类,从而具有父类的所有特性。

    public class Piano extends Instrument{
    void play(){
    system.out.pring("我的Piano");
    }
    }

    public class Violin extends Instrument{
    void play(){
    system.out.pring("我的Violin");
    }
    }

    public class Music{

    public static void tune(Instrument i){
    i.play();
    }

    public static void main(String[] args){

    Piano piano =new Piano ();

    Violin violin =new Violin ();

    tune(piano );//向上转型用父类作为参数接受
    tune(violin );)//向上转型用父类作为参数接受

    }
    }
    //从上面可以看出实现了多态,两个子类实例化后调用tune方法不需要明确指定实例化类的类型,而是指定了父类,由父类向上转型调用play方法。调用tune方法虚拟机会实现动态绑定。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料