1.Game类 -》游戏类
package com.hubstc.obj;
//父类
public class Game {
//父类方法
public void start() {
System.out.println("开机,准备就绪!");
}
public void play() {
System.out.println("准备打游戏!");
}
public void end() {
System.out.println("关机!");
}
2.LOL类
package com.hubstc.obj;
//继承父类方法
public class LOL extends Game{
//重写父类方法
public void play() {
System.out.println("准备打LOL");
}
}
3.CS类
package com.hubstc.obj;
//继承父类方法
public class CS extends Game{
public void play() {
//重写父类方法
System.out.println("准备打CS!");
}
}
4.DNF类
package com.hubstc.obj;
//继承父类方法
public class DNF extends Game{
public void play() {
//重写父类方法
System.out.println("准备打DNF!");
}
}
5.Player -》玩家类
package com.hubstc.obj;
public class Player {
public void happy(Game game) {
game.start();
game.play();
game.end();
System.out.println("玩得开心!");
}
}
6.Client -》客户端类,也是主类(程序的入口)
package com.hubstc.obj;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
//打印出父类和子类特有的方法
Game game1 = new LOL(); //向上转型(把子类的对象赋值给父类的变量),多态
Game game2 = new CS();
Game game3 = new DNF();
Player player = new Player();
player.happy(game1);
player.happy(game2);
player.happy(game3);
//只打印出父类中的方法
// Game game = new Game();
// game.start();
// game.play();
// game.end();
}
}
注:在父类对象给子类对象赋值时,需要进行强制转换,如果是子类对象给父类对象赋值时则不需要进行强转。
多态是指某一对象有多重形态,如上面案例所示