怎样理解面向对象中的多态?尤其是体现在java中

如题所述

多态就是为了抽象(形象)编程,计算机的所有逻辑最终都是01逻辑,如果计算机不抽象的话,可能我们现在还在和01这些数字打交道了。隐藏底层细节,上层才能更多的事!!再比如说,一个公司的最大领导指挥底层人员做事,而自己可以不懂他们实现的过程。只有这样他才可能有时间做更高层的事。
计算机编程也是一样,java算是高级语言,所谓高级就是更加符合人们的抽象思维。因此在编程时也要求程序员能编写出能够符合人们交流习惯的代码。这样便于维护,其他人看你的代码也更加容易明白。
继承是多态的基础,只有某个类有多个子类才有多态的概念。比如说动物类(Animal),动物类可以有很多的子类(Cat、Dog、Bird等等)。他们都有一些共同的能力比如说:移动(move),实际上我们人类语言一直在使用多态的概念,你可以指着一个运动着的猫说“这个动物在移动”,你也可以指着一个运动着的狗说“这个动物在移动”,虽然没明确表达出哪种动物,但是因为他们都是动物并且move这个动作是每种动物拥有的能力。这就是我们人类语言对动物的移动能力的多态表达。
程序语言中更需要这样的表达,因为”这个动物在移动“,可以代替多少诸如”这只猫在地上奔跑“、”这只鸟在天空飞翔“等等这些表达。这样提高了程序在这个层次的通用性,你会发现代码量会变少,阅读更容易理解,更容易维护,而程序理解”这个动物在移动“并不是我们人类眼睛看到具体动物怎么移动,而是通过java的”多态“这个特点去识别的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-03

您好,提问者:
    所谓多态:就是父类的引用指向new 子类();

    多态的前提:必须要有extends 或者 implements。

    例如:

class Person{
    void add(){}
}
class Student extends Person{
    void add(){System.out.println("super");}
    void ss(){}
}
public class Demo{
    public static void main(String[] args){
        Person p = new Student();
        p.add(); //如果子类重写了add,输出子类
       // p.ss(); //由于是Person的引用,所以调用不到Student的方法。
       Student s = (Student)p; //向下转型
       s.ss();  //可以正常访问
    }
}

本回答被网友采纳
第2个回答  2014-07-03
public String getName(String strPersionId ) ;

public String getName(Int intPersionid);

这是最简单的一个例子

啊不对,这是重载,哈哈
相似回答