多态,是继封装和继承之后的 java 的第三大特性。
一、多态的概念
多态,按字面意思就是多种形态。比如一个学生,他既是学生又是人,这就是他的两种形态。
在 java 语言中,一个 Student 类继承了 Person 类,这样,Student 类的实例对象就可以给 Student (本类)引用赋值,也可以给 Person (父类)引用赋值。
总之,多态就是可以用父类的引用指向子类的对象。
二、向上转型和向下转型
向上转型实际上就是父类引用指向子类对象的过程。格式如下:
父类类名 变量 = new 子类类名();
而向下转型实际上是子类引用指向父类引用,但是需要进行强转,格式如下:
子类类名 变量 = (子类类名)父类引用;
向上转型其实是对子类对象的标准化,向上转型之后只能调用子类重写父类的方法,不可以使用子类特有的方法,而如果需要使用子类特有的方法,就需要向下转型。而它的缺陷也正巧是这样:如果想要向下转型,必须先向上转型。
如果没有发生这样的转型,则会抛出异常:
Exception in thread “main” java.lang.ClassCastException,也就是类型不匹配的异常。
三、Instanceof关键字
而instanceof关键字就可以判断当前对象是否是当前类的实例,格式如下:
对象名 instanceof 类名称
有了这样一种方式,就可以避免产生这样的错误,使我们更顺利地对对象进行转型操作。
//A类是B类的父类
A a2 = new B();
System.out.println(a2 instanceof B);//打印输出true
版权声明:本文为qq_41535967原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。