class Demo_Animal {
public static void main(String[] args) {
Cat c = new Cat("小花",2); //创建对象小花猫
System.out.println("它叫"+c.getName()+",它"+c.getAge()+"岁了");
c.eat();
c.catchMouse();
Dog d = new Dog("阿黄",3); //创建对象阿黄狗
System.out.println("它叫"+d.getName()+",它"+d.getAge()+"岁了");
d.eat();
d.lookHome();
System.out.println("-------------------------");
JumpCat jc = new JumpCat("跳高猫",4); //创建跳高猫对象
System.out.println("它叫"+jc.getName()+",它"+jc.getAge()+"岁了");
jc.eat();
jc.catchMouse();
jc.jump();
JumpDog jd = new JumpDog("跳高狗",5); //创建跳高狗对象
System.out.println("它叫"+jd.getName()+",它"+jd.getAge()+"岁了");
jd.eat();
jd.lookHome();
jd.jump();
}
}
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(); //成员方法抽象方法
}
interface Jumping { //跳高接口
public void jump();
}
class Cat extends Animal { //猫类继承动物类
public Cat() {} //空参构造
public Cat(String name,int age) { //带参构造
super(name,age);
}
public void eat() { //重写成员方法
System.out.println(this.getName()+"吃猫粮");
}
public void catchMouse() { //成员方法
System.out.println(this.getName()+"抓老鼠");
}
}
class JumpCat extends Cat implements Jumping { //继承猫类并实现接口
public JumpCat() {} //空参构造
public JumpCat(String name,int age) { //带参构造
super(name,age);
}
public void jump() { //跳高方法
System.out.println("它会跳高");
}
}
class Dog extends Animal { //狗类继承动物类
public Dog() {} //空参构造
public Dog(String name,int age) { //带参构造
super(name,age);
}
public void eat() { //重写成员方法
System.out.println(this.getName()+"吃狗粮");
}
public void lookHome() { //成员方法
System.out.println(this.getName()+"看门");
}
}
class JumpDog extends Dog implements Jumping { //继承狗类并实现接口
public JumpDog() {} //空参构造
public JumpDog(String name,int age) { //带参构造
super(name,age);
}
public void jump() { //跳高方法
System.out.println("它会跳高");
}
}
运行结果:如图
|
|