美文网首页
JavaForAndroid08

JavaForAndroid08

作者: tah | 来源:发表于2018-04-24 08:58 被阅读2次

    一、对象的向上转型

    向上转型--将子类的对象赋值给父类的引用 向上转型.png
    1、一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型。

    2、一个引用调用的那一个方法,取决于这个引用所指向的对象
    e.g.
    class Person {
    String name;
    int age;
    void introduce() {
    System.out.println("我的名字是"+name+",我的年龄是"+age);
    }
    }
    class Student extends Person {
    String address;
    void study() {
    System.out.println("我正在学习");
    }
    void introduce () {
    super.introduce();
    System.out.println("我的家在"+address);
    }
    }
    class Test {
    public static void main (String args []) {
    //Student s = new Student();
    //Person p = s;
    Person p = new Student();
    p.name = "张三";
    p.age = 20;
    //p.address = "北京"; //报错
    p.introduce(); //调用子类的introduce方法
    //p.study();//报错
    }
    }

    二、对象的向下转型

    向下转型--将父类的对象赋值给子类的引用 向下转型.png
    先初始化一个子类对象,再将子类的引用向上转型得到一个父类的引用,再将父类的引用强制转换成子类的引用。

    class Test1 {
    public static void main (String args []) {
    //Student s = new Student();
    //Person p = s;
    Person p = new Student();
    Student s = (Student) p;
    /*执行报错,父类的对象无法转成子类的类型
    Person p = new Person();
    Student s = (Student)p;
    */
    }
    }

    相关文章

      网友评论

          本文标题:JavaForAndroid08

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