java 向上转型

向上转型: 一个基类的引用变量能指向其子类的对象 

////注意 引用是父类的,对象是子类的,所以还是可以进行对象转换新建一个子类的引用指向子类的对象。

1.父类作为参数能传入子类,

2.父类作为声明类型,对象是子类

向上转型

这是由于导出类是基类的超集,但是方法中只能使用基类中的方法,不能用子类中的方法,

同时若父类为Object类是 要特殊对待

1.如下报错,显示类中没有print2方法。

package text;

public class Text {
    public static void main(String[] args) {
        B b = new B();
        C.play(b);
    }

}
class A {
    public void print1() {
        System.out.println("1");
    }
}
class B extends A {
    public void print1() {
        System.out.println("2");
    }
    public void print2() {
        System.out.println("3");
    }
}
class C {
    public static void play(A i) {
        i.print2();
    }
}

 2.报错,不能使用除父类以外的方法

package text;

public class Text {
    public static void main(String[] args) {
        A a = new B();
        a.print1();
        //a.print2();
    }

}
class A {
    public void print1() {
        System.out.println("1");
    }
}
class B extends A {
    public void print1() {
        System.out.println("2");
    }
    public void print2() {
        System.out.println("3");
    }
}
View Code

 

posted @ 2017-03-16 15:33  lyn流光  阅读(143)  评论(0)    收藏  举报