JAVA OOP第三章 多态

package cn.happy1;

public class Cat extends Pet {

	@Override
	public void eat() {
		super.health=super.health+4;
		System.out.println("猫咪"+super.name+"吃饱了,健康值增加4.");

	}
private String color;
public String getColor() {
	return color;
}
public void setColor(String color) {
	this.color = color;
}
public Cat(String name, String color) {
	super(name);
	this.color = color;
}

}

package cn.happy1;
//狗狗类 子类
public class Dog extends Pet {

	@Override
	public void eat() {
		super.health=super.health+3;
		System.out.println("狗狗"+super.name+"吃饱啦,健康值增加3。");
	}
	private String strain;
	public Dog(String name, String strain) {
		super(name);
		this.strain = strain;
	}
	
	public String getStrain() {
		return strain;
	}

	public void setStrain(String strain) {
		this.strain = strain;
	}

	public void print(){
		super.print();
		System.out.println("我是一只"+this.strain+"。");
	}
	public void catchingflydisc(){
		System.out.println("狗狗"+super.name+"正在接飞盘。");
		
		super.health=super.health-10;
		super.love=super.love+5;
	}

}

package cn.happy1;
//主人类
public class Master {

	private String name="";
	private int money=0;
	public Master(String name, int money) {
		
		this.name = name;
		this.money = money;
	}
	public void feed(Pet pet){
		pet.eat();
	}
	public void feed(Dog dog){
		dog.eat();
	}
	public void feed(Penguin pgn){
		pgn.eat();
	}
	/**
	 * 主人领养宠物
	 */
	
	public Pet getPet(int typeId){
		Pet pet=null;
		if(typeId==1){
			pet=new Dog("屁屁","金毛");
			
		}else if(typeId==2){
			pet=new Penguin("楠楠","QQ");
		}
		return pet;
	}
	
	/**
	 * 主人与宠物玩耍
	 */
	public void play(Pet pet){
		if(pet instanceof Dog){
			Dog dog=(Dog) pet;
			dog.catchingflydisc();
		}else if(pet instanceof Penguin){
			Penguin pgn=(Penguin) pet;
			pgn.catchingflydisc();
		}
	}
}

package cn.happy1;

import java.util.Scanner;


public class MyMain {

	public static void main(String[] args) {
     
		/*Dog dog=new Dog("欧欧","雪纳瑞");
		Penguin pgn=new Penguin("楠楠","Q妹");
		Master master=new Master("王先生",100);
		master.feed(dog);
        master.feed(pgn);*/
		
        
      //  Master master=new Master("王先生",100);
       // Pet pet=new Dog("欧欧","雪纳瑞");
        //master.feed(pet);
		
		
		// Master master=new Master("王先生",100);
		// Pet pet=new Cat("粒粒","黄色");
		 //master.feed(pet);
		
		
		
		
		/*Master master=new Master("王先生",100);
		Scanner input=new Scanner(System.in);
		System.out.println("欢迎来到宠物超市!!!你们好啊");
		System.out.println("请选择要领养等等宠物类型(1.狗狗 2.企鹅)");
		int typeId=input.nextInt();
		Pet pet=master.getPet(typeId);
		if(pet!=null){
			System.out.println("领养成功");
			master.feed(pet);
			
		}else{
			System.out.println("对不起 没有这和宠物,请重新选择");
		}
	*/
		
		
	/*	Pet pet=new Dog("欧欧","金毛");
		pet.eat();
		Dog dog=(Dog) pet;
		dog.catchingflydisc();
		Penguin pgn=(Penguin) pet;
		pgn.catchingflydisc();
		*/
		
		
		/*Pet pet=new Penguin("丫丫","QQw");
		pet.eat();
		if(pet instanceof Dog){
			Dog dog=(Dog) pet;
			dog.catchingflydisc();
		}else if(pet instanceof Penguin){
			Penguin pgn=(Penguin) pet;
			pgn.catchingflydisc();
		}
		*/
		
		
		Scanner input=new Scanner(System.in);
		Master master=new Master("王先生",100);
		System.out.println("欢迎来到宠物超市!!!你们好啊");
		System.out.println("请选择要领养等等宠物类型(1.狗狗 2.企鹅)");
		int typeId=input.nextInt();
		Pet pet=master.getPet(typeId);
		if(pet!=null){
			System.out.println("领养成功");
			master.feed(pet);
			master.play(pet);
			
		}else{
			System.out.println("对不起 没有这和宠物,请重新选择");
		}
	}
}

package cn.happy1;
//企鹅类 子类
public class Penguin extends Pet {

	@Override
	public void eat() {
		super.health=super.health+5;
       System.out.println("企鹅"+super.name+"吃饱啦,健康值增加5。");
	}
	private String sex;
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Penguin(String name, String sex) {
		super(name);
		this.sex = sex;
	}
	public void print(){
		super.print();
		System.out.println("性别是:"+this.sex+"。");
	}
	
	public void catchingflydisc(){
		System.out.println("企鹅"+super.name+"正在游泳。");
		
		super.health=super.health-10;
		super.love=super.love+5;
	}

}

package cn.happy1;
//宠物类,父类
public abstract class Pet {

	protected String name="小花";//昵称
	protected int health=100;//健康值
	protected int love=0;//亲密度
	public Pet(String name) {
		this.name=name;
	}
	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 getLove() {
		return love;
	}
	public void setLove(int love) {
		this.love = love;
	}
	public void print(){
		System.out.println("宠物自白:  我的名字叫"+this.name+",健康值是:"+this.health+",和主人亲密度是:"+this.love);
	}
	
	public abstract void eat();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值