1. 程式人生 > >Java 面向物件例項:人寵遊戲

Java 面向物件例項:人寵遊戲

package com.neusoft.Play;

public class Master {
	public void play(Pet pet){
		if(pet instanceof Dog){
			Dog dog = (Dog) pet;
			dog.play(pet);
			dog.state();
		}else{
			Penguin penguin = (Penguin) pet;
			penguin.play(pet);
			penguin.state();
		}
	}
	
	
	public static void main(String[] args) {
		Master master = new Master();
		Pet pet = new Penguin();
		master.play(pet);;
	}
}
package com.neusoft.Play;

public abstract class Pet {
	private String name;
	private int health;
	private int lovey;
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getHealth() {
		return health;
	}
	public void setHealth(int health) {
		this.health = health;
	}
	public int getLovey() {
		return lovey;
	}
	public void setLovey(int lovey) {
		this.lovey = lovey;
	}
	
	public abstract void play(Pet pet);
	public abstract void state();
}
package com.neusoft.Play;

public class Dog extends Pet {
	
	
	public void play(Pet pet) {
		System.out.println("狗狗玩接飛盤遊戲");

	}

	@Override
	public void state() {
		this.setName("Dexter");
		this.setHealth(80);
		this.setLovey(60);
		System.out.println(getName()+"健康值減少10:health="+(getHealth()-10));
		System.out.println("與主人親密度增加5:lovey="+(getLovey()+5));
	}
	
}
package com.neusoft.Play;

public class Penguin extends Pet {
	
	public void play(Pet pet) {
		System.out.println("企鵝玩游泳遊戲");
	}
	
	@Override
	public void state(){
		this.setName("Lucky");
		this.setHealth(80);
		this.setLovey(60);
		System.out.println(getName()+"健康值減少10:health="+(getHealth()-10));
		System.out.println("與主人親密度增加5:lovey="+(getLovey()+5));
	}
	
}