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);
//一般来说测试区不喜欢写太多代码,也不喜欢反复的增删改除所以越简单越好。
}
}
|
|