美文网首页
java多态

java多态

作者: Irick | 来源:发表于2016-10-12 10:17 被阅读0次

    市面上对于多态往往有两种说法,一种是多态是通过方法的重载和方法的重写来实现多态,另外一种是父类型的引用指向子类型的对象或者接口类型的引用指向实现接口的类的实例。

    其实两种说法都不全面,首先,要从字面上来理解什么是多态,多态,即,多种状态,以上两种说法都代表了两种状态。java中多态可以分为静态多态和动态多态。

    1、静态多态:

    demo1

    public void sum(i, j){ return i + j; }

    public void sum(i, j ,k){return i + j + k; }

    静态多态在编译期间就可以确定其是否符合语法规范,如果前面两个方法名字,参数都一样的话,(这里的参数相同,表示参数的类型,个数,顺序必须一样)在编译期间是无法通过的,此为静态多态,在编译期间就可以确定一个函数或者其他类型的变量或者引用可以同时存在,并且符合语法规范,那么都可以称为静态多态。


    2、动态多态:

    demo2

    public abstract class People

    {

    public void play();

    }

    People man = new Man();

    People woman = new Woman();

    第二种多态算比较正规的多态了,我们说我可以是人,也可以是狗,谔谔....,这个。。。好吧这中太过分。我们说一个人People可以是男人Man也可以是女人Woman,在编译期间这中关系是无法确定的,编译期间他只会清楚这个引用指向某个对象,但是具体指向的是那个对象,只有在执行的时候才可以确定,我们在定义对象的时候可以People man = new Dog(); 在编译期间也是没有错的。接口同理,此为动态多态。


    工作学习至于,无聊至极,胡说八道一番,不当之处,欢迎指正!!

    相关文章

      网友评论

          本文标题:java多态

          本文链接:https://www.haomeiwen.com/subject/lyqiyttx.html