本人刚接触java,现在在此请教大家一个问题,有关多态:
希望高手给我这菜鸟解释一下多态的问题或者他是怎样运用,最好给我举一个例子并对他说明一下原因,
菜鸟这次谢过高手啦,谢谢啦 ,

解决方案 »

  1.   


    //有继承 有重写 父类引用指向子类对象interface A {
        public void methodOfA();
    };class B implements A {
        public void methodOfA() {
        }    public void methodOfB() {
        }
    }class C implements A {
        public void methodOfA() {
        }    public void methodOfC() {
        }
    }public class IdentifyBOrC {
        public static void main(String[] args) {
    A firstA = new B();// firstA不知道自己是B还是C,只能调用A中的方法
    System.out.println(firstA.getClass().getSimpleName());// 直接打印对象对应的类名就知道自己的身份了
    A secondA = new C();// secondA不知道自己是B还是C,只能调用A中的方法
    System.out.println(secondA.getClass().getSimpleName());//直接打印对象对应的类名就知道自己的身份了
        }
    }
    /*output:
    B
    C
    */
      

  2.   

    interface A {
        public void methodOfA();
    };class B implements A {
        public void methodOfA() {
        }    public void methodOfB() {
        }
    }class C implements A {
        public void methodOfA() {
        }    public void methodOfC() {
        }
    }public class IdentifyBOrC {
        public static void main(String[] args) {
        A firstA = new B();// firstA不知道自己是B还是C,只能调用A中的方法
        System.out.println(firstA.getClass().getSimpleName());// 直接打印对象对应的类名就知道自己的身份了
        A secondA = new C();// secondA不知道自己是B还是C,只能调用A中的方法
        System.out.println(secondA.getClass().getSimpleName());//直接打印对象对应的类名就知道自己的身份了
        }
    }
      

  3.   

    总结一句话:多态就是父类型的引用指向子类型的对象&&接口类型的引用指向实现了该借口的对象
      

  4.   

    http://blog.csdn.net/ssyyll/article/details/3170405
      

  5.   

    多态:多态有两种意义的多态,一种是关于继承的即子类继承了父类的方法但也表现出不同。例如:中国人继承了人可以说话的特性但说的是中文,而美国人也继承了这个方法说的确实英文。view plaincopy to clipboardprint?
    01.<span style="font-size:18px;">public class People {  
    02.void Speak() {  
    03.    }  
    04.}  
    05.class Chinese extends People {  
    06.    void Speak() {  
    07.        System.out.println("汉语");  
    08.    }  
    09.}  
    10.class American extends People {  
    11.    void Speak() {  
    12.        System.out.println("English");  
    13.    }  
    14.}  
    15.</span>  
    <span style="font-size:18px;">public class People {
    void Speak() {
    }
    }
    class Chinese extends People {
    void Speak() {
    System.out.println("汉语");
    }
    }
    class American extends People {
    void Speak() {
    System.out.println("English");
    }
    }
    </span> 
    这个时候涉及到的概念就是我们重写了父类的方法另一种多态是关于重载的一个类中的摸个方法可以定义多次,相同的方法名但是根据参数的不同而选择不同的方法。例如:view plaincopy to clipboardprint?
    01.public class People {  
    02.    void speak(int g) {  
    03.        System.out.println(""+1);  
    04.    }  
    05.    void speak(String s) {  
    06.        System.out.println(s);  
    07.    }  
    08.      
      

  6.   

    一句话,就是父类型的引用即可以指向父类型的成员,也可以指向子类型的成员,具体是哪个,有java虚拟机动态决定。这就是多态。
      

  7.   

    我也是菜鸟 才刚刚学完对象~~~  大家都知道多态 要继承 子类重写父类方法 和 父类引用指向子类对象  实现时 则是你new了谁就调用谁的方法(父类的 子类的)  比如:Person p = new Student(); //Person为父类, Student为子类  父类引用(p)指向子类对象  实现子类Student中 无参方法。 这是我认为的  如果有什么错误希望大家帮忙纠正,在此谢谢了 。   多态使得程序的扩张性达到了最好~~~(不过好像说java子类只能有一个父类 那interface的class 该叫接口还是啥呢??)