Java多态性学习
什么是多态?
同样的一个类,可以表现出不同的形式。要父类给儿子,表面上调用父亲的某个方法,在运行的时候实际上运行的是子类重写的父类的该方法。多态其实是我们Java引用数据类型的类型转换规则。
- 多态性体现在两方面
- 向上转型:语法如下:父类类型 父类对象名 = new 子类类型()
没有限制 只要满足继承关系,将子类赋值给父类 - 向下转型:语法如下:子类类型 子类对象名 = (子类类型)new 父亲类型()
向下转型要求=右边的运行时类型也必须是编译时类型或者编译时类型子类才能向下转型和。
怎么判断=右边的类型是不是某一种类型对象名 instanceof 类型。
Java引用数据类型的类型转换规则:必须满足两个类型之间有父子关系。
Java中的多态只有方法的多态 没有属性的多态
所谓的方法的多态,就是在编译时调用的是=左边的类型中的方法,运行的时候实际上运行的是=右边的类型中方法。属性从编译到运行都是=左边的类型中的属性值。
- instanceof关键字
- 用法: 对象名 instanceof 类A
- 判断对象运行时类型是不是我们这个A类型,如果是返回true 如果不是 返回false
- 注意点:对象的编译时类型必须和类A之间有父子关系 ,如果没有报错