7.8

作者: 竹台师 | 来源:发表于2018-07-09 00:06 被阅读0次

    面向对象的三个特性之一。多态

    多态:一类事物的多种表现形式。人:男人,女人,妖    动物:阿猫,阿狗

    在java中

    1.重载:在一个类中一个方法功能的多种表现形式

    重写:父子类对于同一个方法表现出不同的形式

    2.对象的多态性:若编译时和运行时类型不一致,就出现多态(Polymorphism)

    java程序的编译运行分为两种状态:在多态的情况下

    编译时,“看左边”,看的是父类的引用(父类中不具备子类特有的方法)

    运行时,“看右边”,看的是子类的对象(实际运行的是子类重复父类的方法)

    向上转型与向下转型

    引用数据类型之间的转换:前提都先有继承

    向上转型upcasting:子类转父类    系统自动完成

    注意:一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法

    向下转型downcasting:父类转子类  需要使用强制类型转换符()

    注意:前提父类原先指向的就是本身对象才能向下转型成功,如果父类原先指向的是其他类型(父类的,兄弟类的)的对象,那么就会发生 java.lang.CastException类型转换异常。

    7.8 7.8

    instance

    引用类型对象能用的运算符:

    =:赋值  引用变量=对象

    ==和!=:比较两个对象的地址

    +:必须与String拼接

    其他运算符都不能直接用于对象

    唯一一个只用于引用类型的运算符:instanceof

    x  instanceofA:检验x是否为类A的对象,返回值为boolean型

    要求X所属的类A必须是子类和父类的关系,否则编译错误

    如果X属于类A的子类B,x instanceofA也为 true

    7.8

    多态的原则

    多态的前提:1.要有继承或者实现关系 2.要有方法的重写

    成员方法:

    编译时:要查看引用变量所属的类中是否有所调用的方法。

    运行时:调用实际对象所属类中的重写方法。

    成员变:

    不具备多态性,只看引用变量所属的类。

    属性也会继承到子类中,子类也可以定义和父类同名的属性。但是属性不具备多态性,编译与运行都只看左边

    7.8

    相关文章

      网友评论

          本文标题:7.8

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