多态

多态也就是对象的多种形态

继承是多态的基础

1.引用多态

  父类的引用可以指向本类的对象

  父类的引用可以指向子类的对象

 

2.方法多态

  创建本类对象时,调用的方法是本类的方法

  创建子类对象时,调用的方法为子类重写的方法或继承的方法;但不能调用子类独有的方法

 

引用类型的转换:

1.向上类型转换(隐式/自动):小类型向大类型转换

2.向下类型转换(强制转换):大类型向小类型转换

但是强制类型转换有风险,用instanceof运算符,解决引用对象的类型,避免类型转换的安全性问题

instanceof判断一个引用是否是一个类型或者一个类型的子类型,返回值boolean

eg:Dog,Cat,继承Animal

  Dog dog=new Dog();

  Animal animal=dog;    //自动转换

  //Dog dog2=(Dog)animal;  //强制转换

  Cat cat=(Cat)animal;    //强制转换,虽然编译不报错,但是运行时是报错的,毕竟animal的引用是dog,不能转换成cat

  if(animal instanceof Cat){

    //判断animal是否引用的是cat类型

  } else{

  //无法进行类型转换

  }

  

posted @ 2016-06-16 10:38  猫儿36  阅读(125)  评论(0编辑  收藏  举报