class X
{
public void display()
{
System.out.println("你好,欢迎使用基类。");
}
}
class Y extends X
{
public void display()
{

System.out.println("你好,欢迎使用子类。");
}

}
public class Text { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

X a=new Y();
a.display();
Y b=(Y) new X();
b.display();
//((X)b).display();
}}

解决方案 »

  1.   

    Y b=(Y) new X();
    不可以。class 中国人 {}
    class 北京人 extends 中国人 {}中国人 x = new 北京人(); // 这个当然可以,任何一个北京人必然是中国人,但是
    北京人 y = new 中国人(); // 这个绝对错误,你再怎么转型都是错的。
      

  2.   

    1楼正解  java的继承机制只能有一个父类 但一个类可以有多个子类  多态就是说 父类的方法在若干个子类当中有各自不同的实现
      

  3.   

    一楼正解。X a = new Y();向上传递。根据里氏替换原则 :子类对象可以出现在父类对象可以出现的任何地方。