多态变量和向上造型

子类和子类型

  类定义了类型

  子类定义了子类型

  子类的对象可以被当做父类的对象来使用

  赋值给父类的变量

  传递给需要父类对象的函数

  放进存放父类对象的容器里

子类型与赋值

  

 

   

 

   子类的对象可以赋值给父类的变量

 子类和参数传递

  子类的对象可以传递给需要父类对象的函数

 子类型和容器

  子类的对象可以放在存放父类对象的容器里

多态变量

  Java的对象变量是多态的,它们能保存不止一种类型的对象

  它们可以保存的是声明类型的对象,或声明类型的子类的对象

  就把子类的对象赋值给父类的变量的时候,就发生了向上造型

  在Java当中,所有的对象变量都是多态,多态的意思就是多种形态,就是这个时候它可以放这个类型的变量,过一会又可以放另一个类型的变量

  在Java的系统里面,所有的对象变量全部都是多态变量,多种形态都可以存在的

  当我们把一个子类的对象赋给一个多态变量的时候,就发生了向上造型

向上造型

  造型的意思就是,把一个类型的对象,赋给另外一个类型的变量,这个过程叫做造型

 造型cast

  子类的对象可以赋值给父类的变量

  注意!java中不存在对象对对象的赋值!!

  父类的对象不能赋值给子类的变量!

  

 

  可以用造型:

   

 

   (只有当v这个变量实际管理的是Car才行)

 造型

  用括号围起来类型放在值的前面

  对象本身并没有发生任何变化

  所以不是类型转换

  运行时有机制来检查这样的转化是否合理  ClassCastException

  类型转换和造型是不同的,类型转换做完之后,直接把类型转成另外一个类型,而造型做完以后,把这个当做另外一个类型来看待,并没有把它当成另外一个类型来判断

 向上造型

  拿一个子类的对象,当做父类的对象来用

  向上造型是默认的,不需要运算符

  向上造型总是安全的

posted @ 2022-06-22 10:04  肥宅快乐水~  阅读(37)  评论(0)    收藏  举报