求解多态方面的问题

li14725836912321 2015-01-04 03:18:25
我看java多态时,说多态的作用是:消除类型之间的耦合性。这句话作何理解?
...全文
448 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mooonchen 2015-01-12
  • 打赏
  • 举报
回复
多态分为两种:静态多态 和 动态多态 静态多态 指的就是 方法的重载,即方法名称相同,但是参数不同。参数不同又分为 参数数量不同、参数类型不同、参数顺序不同。 动态多态 与继承有关,子类继承父类时,可以重写的方法。定义一个父类的对象,但是可以用子类的构造方法来实例化,俗称“父类引用指向子类对象”。 至于您说的,消除类型之间的偶合性,我是这么理解的,java.lang.Math类中有多个重载的abs方法,用于求绝对值, (1) static double abs(double a) 返回 double 值的绝对值。 (2) static float abs(float a) 返回 float 值的绝对值。 (3) static int abs(int a) 返回 int 值的绝对值。 (4) static long abs(long a) 返回 long 值的绝对值。 这样在调用Math.abs( a ) 时,传递一个形式参数a,当a是double类型时会调用第(1)个方法, 当a是float 时,会调用第(2)个方法,当a是int 或者long 时,依次类推。 在调用Math.abs(a)是,不管a是什么类型,都是在求a的绝对值,这样,消除了a的类型的差别,即消除了a的类型的耦合性,您应该理解了吧。看我打了这么多字,把分给我吧,谢谢。
qq_25055923 2015-01-04
  • 打赏
  • 举报
回复
运行时多态(体现为方法重载)和编译时多态(体现为方法重写),这些官方用语很多时候你用多了才能理解。
  • 打赏
  • 举报
回复
因为两个系统之间的依赖不是直接的,而是通过接口或抽象类进行的,他们的耦合只在于接口层,而不是直接依赖于实现层。
  • 打赏
  • 举报
回复
像什么java代码的目的是为了 高内聚低耦合(据说这本身就是一个矛盾,只能协调,不能完全消除) 这些的,正真实战了才有用到,你先弄清一些原理。
  • 打赏
  • 举报
回复
刚开始学你先这样记:多态严格理解有两种,运行时多态(体现为方法重载)和编译时多态(体现为方法重写),这些官方用语很多时候你用多了才能理解。
异常异长 2015-01-04
  • 打赏
  • 举报
回复
异常异长 2015-01-04
  • 打赏
  • 举报
回复
Java多态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。 多看几个例子 就明白了。参考:http://www.cnblogs.com/mengdd/archive/2012/12/25/2832288.html

62,633

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧