zoukankan      html  css  js  c++  java
  • 向上转型和向下转型

    子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。

    下面举一个向上转型的示例

    父类

    public class Animal {
    public void eat(){
    System.out.println("animal eatting...");
    }
    }

    子类

    class Bird extends Animal{
    public void eat(){
    System.out.println("bird eatting...");
    }
    public void fly(){
    System.out.println("bird flying...");
    }
    }

    class Main{
    public static void main(String[] args) {
    Animal b=new Bird(); //向上转型
    b.eat();
    //b.fly(); //此处不能调用fly方法。
    }
    }

    打印输出的是"bird flying..."

    因此向上转型有两个特点Animal b=new Bird();并且只能调用父类和子类共有的子类方法,同时向上转型是安全的。

    向下转型成为强制类型转换 其意思是从父类转为子类 转了后你可以拥有更多的方法 因为子类通常有比父类更多的方法,向下转型的基础是这个对象进行了向上转型,否则报错

    class Main{
    public static void main(String[] args) {
    Animal A=new Bird(); //先向上转型
    Bird B=(Bird) A;//然后进行向下转型
    B.eat();
    B.fly(); //此处提示在Animal中没有定义fly方法。
    }
    }

  • 相关阅读:
    webstock学习
    H5存储
    js保留两位小数
    html5拖动滑块
    js判断网页访问设备类型
    关于hadoop setCombinerClass 与 setReducerClass同时使用存在的问题。
    hadoop 输出中文乱码问题
    mapreduce实现学生平均成绩
    mapreduce 实现数子排序
    hadoop mapreduce实现数据去重
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/8012012.html
Copyright © 2011-2022 走看看