package com.example1;
public class Dog extends Pet{
}
public class Master {
public void cure(Dog dog) {
if(dog.getHealth()<50) {
dog.setHealth(60);
System.out.println("吃药,打针");
}
}
public void cure(Penguin penguin) {
if(penguin.getHealth()<50) {
penguin.setHealth(70);
System.out.println("医疗,吃药");
}
}
}
public class Penguin extends Pet{
}
public class Pet {
public String name = "";
public int health = 100;
public int love = 0;
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 class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setHealth(20);
Penguin p = new Penguin();
p.setHealth(30);
Master m = new Master();
m.cure(dog);
m.cure(p);
}
}
public class Dog extends Pet{
@Override
public void toHospital() {
this.setHealth(60);
System.out.println("打针,吃药");
}
}
ublic class Master {
public void cure(Pet pet) {
if(pet.getHealth()<50) {
pet.toHospital();
}
}
}
public class Penguin extends Pet{
public void toHospital() {
this.setHealth(70);
System.out.println("吃药,医疗");
}
}
public abstract class Pet {
public String name = "";
public int health = 100;
public int love = 0;
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 abstract void toHospital();
}
public class Test {
public static void main(String[] args) {
// Dog dog = new Dog();
// dog.setHealth(20);
// Master m = new Master();
// m.cure(dog);
//
// Penguin p = new Penguin();
// p.setHealth(30);
// m.cure(p);
Pet pet = new Dog();
pet.setHealth(20);
Master m = new Master();
m.cure(pet);
pet = new Penguin();
pet.setHealth(30);
m.cure(pet);
}
}
public class Dog extends Pet{
@Override
public void eat() {
super.health = super.health+3;
System.out.println("狗狗吃饱了,体重增加3");
}
public void catchingFlyDisc() {
super.health = super.health-10;
super.love = super.love+5;
System.out.println("飞盘");
}
}
public class Master {
public void feed(Pet pet) {
pet.eat();
}
public void play(Pet pet) {
if (pet instanceof Dog) {
Dog dog = (Dog) pet;
dog.catchingFlyDisc();
} else if (pet instanceof Penguin) {
Penguin penguin = (Penguin) pet;
penguin.swimming();
}
}
}
public class Penguin extends Pet{
@Override
public void eat() {
super.health = super.health+5;
System.out.println("吃饱了,体重增加5");
}
public void swimming() {
super.health = super.health-10;
super.love = super.love+5;
System.out.println("游泳");
}
}
public abstract class Pet {
public String name = "";
public int health = 100;
public int love = 0;
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 abstract void eat();
}
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
Penguin p = new Penguin();
Master m = new Master();
m.play(d);
m.play(p);
}
}
image.png
image.png
image.png
image.png
接口
/**
* 动物抽象类。
* @author
*/
public abstract class Animal {
private String name = null;// 名字
private int legNum = 0; //腿的条数
/**
* 有参构造方法。
* @param name 名字
* @param legNum 腿的条数
*/
public Animal(String name, int legNum) {
this.name = name;
this.legNum = legNum;
}
/**
* 获得动物名字。
* @return 名字
*/
public String getName() {
return name;
}
/**
* 获得动物腿的条数。
* @return 腿的条数
*/
public int getLegNum() {
return legNum;
}
/**
* 动物叫。
*/
public abstract void shout();
}
/**
* 猫类,动物类的子类。
* @author
*/
public class Cat extends Animal {
/**
* 构造方法。
* @param name 名字
* @param legNum 腿的条数
*/
public Cat(String name, int legNum) {
super(name, legNum);
}
/**
* 重写父类的shout()方法。
*/
public void shout() {
System.out.println("喵喵喵……");
}
}
/**
* 鸭类,动物类的子类。
* @author
*/
public class Duck extends Animal {
/**
* 构造方法。
* @param name 名字
* @param legNum 腿的条数
*/
public Duck(String name, int legNum) {
super(name, legNum);
}
/**
* 重写父类的shout()方法。
*/
public void shout() {
System.out.println("嘎嘎嘎……");
}
}
/**
* 动物抽象类。
* @author
*/
public abstract class Animal {
private String name = null;// 名字
/**
* 有参构造方法。
* @param name 名字
*/
public Animal(String name) {
this.name = name;
}
/**
* 获得动物名字。
* @return 名字
*/
public String getName() {
return name;
}
/**
* 动物叫。
*/
public abstract void shout();
}
/**
* 猫类,动物类的子类,实现陆生接口。
* @author
*/
public class Cat extends Animal implements Terrestrial {
private int legNum = 0; // 腿的条数
/**
* 构造方法。
* @param name 名字
* @param legNum 腿的条数
*/
public Cat(String name,int legNum) {
super(name);
this.legNum = legNum;
}
/**
* 重写父类的shout()方法。
*/
public void shout() {
System.out.println("喵喵喵……");
}
/**
* 实现接口的getLegNum()方法。
* @return 腿的条数
*/
public int getLegNum() {
return legNum;
}
}
/**
* 海豚类,动物类的子类。
* @author
*/
public class Dolphin extends Animal {
/**
* 构造方法。
* @param name 名字
*/
public Dolphin(String name) {
super(name);
}
/**
* 重写父类的shout()方法。
*/
public void shout() {
System.out.println("海豚音……");
}
}
/**
* 鸭类,动物类的子类,实现陆生接口。
* @author
*/
public class Duck extends Animal implements Terrestrial {
private int legNum = 0; // 腿的条数
/**
* 构造方法。
* @param name 名字
* @param legNum 腿的条数
*/
public Duck(String name,int legNum) {
super(name);
this.legNum = legNum;
}
/**
* 重写父类的shout()方法。
*/
public void shout() {
System.out.println("嘎嘎嘎……");
}
/**
* 实现接口的getLegNum()方法。
* @return 腿的条数
*/
public int getLegNum() {
return legNum;
}
}
/**
* 接口。
* @author
*/
public interface Terrestrial {
/**
* 返回腿的条数。
* @return 腿的条数
*/
public int getLegNum();
}
/**
* 测试类,创建各种动物对象,让动物发出叫声。
* @author
*/
public class Test {
public static void main(String[] args) {
Animal[] animals = new Animal[3];
animals[0] = new Cat("加菲猫", 4);
animals[1] = new Duck("唐小鸭", 4);
animals[2] = new Dolphin("海豚奇奇");
System.out.println("动物名字\t\t动物叫");
for (int i = 0; i < animals.length; i++) {
System.out.print(animals[i].getName() + "\t\t");
animals[i].shout();
}
}
}
/**
* 测试类,创建各种动物对象,输出动物的腿的条数。
* @author
*/
public class Test {
public static void main(String[] args) {
Animal animals[] = new Animal[3];
animals[0] = new Cat("加菲猫", 4);
animals[1] = new Duck("唐小鸭", 2);
animals[2] = new Dolphin("海豚奇奇");
System.out.println("动物名字\t\t腿的条数\t\t动物叫");
for (int i = 0; i < animals.length; i++){
if (animals[i] instanceof Terrestrial) {
String name = animals[i].getName();
int legNum = ((Terrestrial)animals[i]).getLegNum();
System.out.print(name + "\t\t" + legNum + "\t\t");
animals[i].shout();
} else {
String name = animals[i].getName();
System.out.print(name + "\t\t" + 0 + "\t\t");
animals[i].shout();
}
}
}
}







网友评论