黑马程序员技术交流社区

标题: 写了个多太玩玩,里面涉及到父类引用子类,强制转换 [打印本页]

作者: lzh2015    时间: 2015-4-30 20:08
标题: 写了个多太玩玩,里面涉及到父类引用子类,强制转换
class Game {
       
        public void VS( ) {
          System.out.println("5v5");
        }
        public void solo( ) {
                System.out.println("1v1");
    }
}

class  LolGame extends Game{

     public void VS( ) {
           System.out.println("LOL 5v5");
         }
         public void solo( ) {
                System.out.println("LOL 1v1");
     }
}

class  DotaGame extends Game{

        public void VS( )        {
                System.out.println("Dota 5v5");
    }
        public void solo( ) {
                System.out.println("Dota 1v1");
        }
}

class  DnfGame extends Game{

        public void VS( )        {
                System.out.println("Dnf 5v5");
    }
        public void solo( ) {
                System.out.println("Dnf 1v1");
        }
        public void Undue( ) {
                System.out.println("刷图去咯");
    }
       
}
class GameTool {
        public static void Print(Game g ) {
            g.VS();
                g.solo();
    }
}

class        DuoTaiDemo{

        /*public static void main(String[] args)                {
                //Print(Lol);//写法错误,没建立对象,直接调用会导致找不到符号。
                LolGame lol = new LolGame( );
                Print(lol);//通过下面Print静态方法的创建(包含VS solo),
                //lol.VS();   //new生成的对象就可以直接调用,代码的利用率又高了。
                //lol.solo();
                Game g = new DnfGame( );
                g.VS( );
                g.solo();
                DnfGame t = (DnfGame)g;//Game g 中没有Undue方法,通过强制转换DnfGame后就有了Undued的方法了。
                t.VS();
                t.solo();
                t.Undue();
                //g.Undue();记住不能写被强制转换的对象
        }
        public static void Print(Game g ) {
                g.VS();
                g.solo();
    }*/
        public static void main(String[] args) {

     Game g = new DnfGame( );
         GameTool.Print(g);
       
         Game t = new LolGame( );
         GameTool.Print(t);
          //一般来说测试区不喜欢写太多代码,也不喜欢反复的增删改除所以越简单越好。

    }
}

作者: 知来者之可追    时间: 2015-4-30 20:45
赞、赞。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2