美文网首页
《Oracle Java SE编程指南》17-06:多态环境下对

《Oracle Java SE编程指南》17-06:多态环境下对

作者: AT阿宝哥 | 来源:发表于2020-04-29 23:18 被阅读0次
课程封面-JavaSE-AT阿宝哥

内容导航

  • 前言
  • 1、类型转换
  • 2、向上造型
  • 3、向下造型

1、类型转换

当存在多态环境时,有时候需要类型转换。这里将涉及到一个概念叫 强制类型转换,但是记住,强制是有前提的,只能强制转换成这个对象的运行期类型>

例如
Animal animal=new Cat();
Cat cat=(Cat)animal;

因为animal的运行期类型确实是Cat,所以才可以强制转换成Cat
如果 Dog dog=(Dog)animal;
将发生ClassCastException。


2、向上造型

向上造型,又称自动类型提升,它能提高程序的扩展性。

示例代码:


class Animal{
     abstract void eat();
}
class Cat extends Animal{
      void look() {
    System.out.println("看家");
     }
    }      
 ………
   Animal x=new Cat()  //向上造型,Cat对象提升到Animal对象
   x.eat()   //只能使用父类中的方法
   x.look()  //报错!不能使用子类中的方法


3、向下造型

向下造型,又称向下转型。它能让我们使用子类中的特有方法。

示例代码:


class Animal{
     abstract void eat();
}
class Cat extendsAnimal{
      void look() {
        System.out.println("看家");
        }
    }      


Animal x=new Cat()
Cat  m=(Cat)x;  //向下转型
   m.eat() ;
   m.look();//子父类中的方法都可以使用


持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!


扫描二维码,关注AT阿宝哥

相关文章

网友评论

      本文标题:《Oracle Java SE编程指南》17-06:多态环境下对

      本文链接:https://www.haomeiwen.com/subject/aqaowhtx.html