黑马程序员技术交流社区
标题:
写了个多太玩玩,里面涉及到父类引用子类,强制转换
[打印本页]
作者:
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