/*动物类:姓名,年龄,吃饭,睡觉。
* 猫和狗
* 动物培训接口:跳高p
*/
class AnimalTest1 {
public static void main(String[] args) {
Cat c = new Cat("萌萌",4);
System.out.println("名字:" + c.getName() + ",年龄:" + c.getAge());
c.eat();
c.sleep();
c.catchMouse();
System.out.println("......................");
JumpCat jc = new JumpCat("小小",2);
System.out.println("名字:" + jc.getName() + ",年龄:" + jc.getAge());
jc.eat();
jc.sleep();
jc.catchMouse();
jc.jump();
System.out.println("......................");
JumpDog jd = new JumpDog("嘟嘟",3);
System.out.println("名字:" + jd.getName() + ",年龄:" + jd.getAge());
jd.eat();
jd.sleep();
jd.lookHome();
jd.jump();
System.out.println("......................");
method(new Cat("小萌",4));
System.out.println("......................");
method(new Dog());
}
public static void method(Animal a) {
if(a instanceof Cat) {
Cat cc = (Cat)a;
cc.eat();
cc.sleep();
cc.catchMouse();
System.out.println("名字:" + cc.getName() + ",年龄:" + cc.getAge());
}else if(a instanceof JumpDog) {
JumpDog jd1 = (JumpDog)a;
jd1.eat();
jd1.sleep();
jd1.lookHome();
System.out.println("名字:" + jd1.getName() + ",年龄:" + jd1.getAge());
}else {
a.eat();
a.sleep();
}
}
}
abstract class Animal {
private String name;
private int age;
public Animal() {}
public Animal(String name,int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public abstract void eat();
public abstract void sleep();
}
class Cat extends Animal {
public Cat() {}
public Cat(String name, int age) {
super(name,age);
}
public void eat(){
System.out.println("猫爱吃鱼");
}
public void sleep() {
System.out.println("圏着睡");
}
public void catchMouse() {
System.out.println("猫的本领是抓老鼠");
}
}
class Dog extends Animal {
public Dog() {}
public Dog(String name, int age) {
super(name, age);
}
public void eat() {
System.out.println("狗爱吃肉");
}
public void sleep() {
System.out.println("趴着睡");
}
public void lookHome() {
System.out.println("狗的本领是看家");
}
}
interface Jumping {
public void jump();
}
class JumpCat extends Cat implements Jumping {
public JumpCat() {}
public JumpCat(String name, int age) {
super(name,age);
}
public void jump() {
System.out.println("也爱跳高");
}
}
class JumpDog extends Dog implements Jumping {
public JumpDog() {}
public JumpDog(String name,int age) {
super(name,age);
}
public void jump() {
System.out.println("更爱跳高");
}
}
|
|