编程语言
首页 > 编程语言> > java 多态

java 多态

作者:互联网

语法:赋值语句为子类对象赋值给父类数据类型

多态:new 子类对象 赋值给到 父类的数据类型中

重点:虚拟方法调用,当子类的方法发生覆盖时,多态的调用是调用的实体的方法

编译是检查父类的方法名称,不检查子类

多态由于子类的不同因此存在不确定性

多态中父类变量引用的地址和子类相同

多态中成员方法会覆盖但是成员变量不会覆盖

多态不会调用子类特有的方法和变量为多态

多态的意义:一个父类的数组可以存放多个子类元数

多态数组:定义一个数组,数组的内容将不同的子类对象都汇总到同一个集合

多态数组-对象类型转换: 

  代码: chinese ch = (chinese) p  

  基础数据类型数据转换是改变的底层的二进制代码

  引用数据类型的数据转换没有改变数据本身(存储)

语法: 优先级 . 的优先级要高于()  (类型)对象实体.方法() -- 此时方法只能调用对象实体的方法不能调用类型转换的方法-- 正确调用  ((类型)对象实体).方法()

关键字:instanceof 用于判断对象和类的关系 "String" instanceof String -- 返回True

Chinese ch = (Chinese)p; // 造型存在报错的风险 因为对象p可能不能转为想要的类型

多态参数调用不同子类的不同方法,通过if 条件语句判断 出子类类型,进而调用不同的子类方法

数据类型转换:

1.基础数据 1.1小的数据类型可以自动的转为大的数据类型 1.2 大的数据类型需要强制转为小的数据类型

2.对象的数据类型转化(造形):

1.1子类可以不需要强转为父类 (子类的属性包含父类)

1.2父类 需要强转为子类 

1.3无继承关系的造形是不合规范的

基础数据类型的转换成为强制转换 

引用类型的转化成为造形

多态是高级编程的标志

标签:调用,java,子类,数据类型,多态,父类,方法
来源: https://www.cnblogs.com/wade3/p/16538433.html