美文网首页
多态、final、static

多态、final、static

作者: 小胖5920 | 来源:发表于2019-03-01 14:56 被阅读0次

    注意:分享别人好文章
    多态存在的三个条件

    1、有继承关系

    2、子类重写父类方法

    3、父类引用指向子类对象

    补充一下第二点,既然多态存在必须要有“子类重写父类方法”这一条件,那么以下三种类型的方法是没有办法表现出多态特性的(因为不能被重写):

    1、static方法,因为被static修饰的方法是属于类的,而不是属于实例的

    2、final方法,因为被final修饰的方法无法被子类重写

    3、private方法和protected方法,前者是因为被private修饰的方法对子类不可见,后者是因为尽管被protected修饰的方法可以被子类见到,也可以被子类重写,但是它是无法被外部所引用的,一个不能被外部引用的方法,怎么能谈多态呢

    final关键字的作用

    相信对于final的用法,大多数人都可以随口说出三句话:

    1、被final修饰的类不可以被继承

    2、被final修饰的方法不可以被重写

    3、被final修饰的变量不可以被改变

    static 的学习
    用法:
    1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来

    2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来
    常见问题:
    1、静态方法能不能引用非静态资源?不能,new的时候才会产生的东西,对于初始化后就存在的静态资源来说,根本不认识它。

    2、静态方法里面能不能引用静态资源?可以,因为都是类初始化的时候加载的,大家相互都认识。

    3、非静态方法里面能不能引用静态资源?可以,非静态方法就是实例方法,那是new之后才产生的,那么属于类的内容它都认识。
    加载顺序:静态代码块是严格按照父类静态代码块->子类静态代码块的顺序加载的,且只加载一次。

    相关文章

      网友评论

          本文标题:多态、final、static

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