需求:
已知动物类(姓名,年龄,吃饭,睡觉),它有两个子类,分别是猫类和狗类。
不同的是猫吃鱼,狗吃肉。
经过马戏团的培训后,部分猫会跳高,部分狗也会跳高。
请写代码实现。
public class Demo {
public static void main(String[] args) {
Cat1 c1 = new Cat1("小猫", 18);
System.out.println("动物:" + c1.getName() + ",年龄:" + c1.getAge());
c1.eat();
Dog1 d1 = new Dog1("小狗", 18);
System.out.println("动物:" + d1.getName() + ",年龄:" + d1.getAge());
d1.eat();
JumpCat jc = new JumpCat("跳猫", 18);
System.out.println("动物:" + jc.getName() + ",年龄:" + jc.getAge());
jc.Jumping();
JumpCat jd = new JumpCat("跳狗", 18);
System.out.println("动物:" + jd.getName() + ",年龄:" + jd.getAge());
jd.Jumping();
}
}
//定义一个类
abstract class Animal1 {
private String name; //声明name
private int age; //声明 age
//定义一个空的构造方法
public Animal1() {
}
//定义构造方法
public Animal1(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//定义一个抽象的吃饭方法
public abstract void eat();
}
//定义一个Cat1继承 Animal1
class Cat1 extends Animal1 {
//定义一个空的构造方法
public Cat1() {
}
public Cat1(String name, int age) {
super(name, age);
}
//重写吃饭的方法
public void eat() {
System.out.println("猫吃鱼");
}
}
//定义一个Dog1继承Animal1
class Dog1 extends Animal1 {
public Dog1() {
}
public Dog1(String name, int age) {
super(name, age);
}
//重写构造方法
public void eat() {
System.out.println("狗吃肉");
}
}
//定义一个接口Jumping
interface Jumping {
public void Jumping();
}
//定义一个JumoCat 来继承 Cat1 并且实现Jumping接口
class JumpCat extends Cat1 implements Jumping {
public JumpCat() {
}
public JumpCat(String name, int age) {
super(name, age);
}
//部分猫特有的方法
public void Jumping() {
System.out.println("猫会跳高");
}
}
//定义一个JumpDog 来继承 Dog1 并且实现Jumping接口
class JumpDog extends Dog1 implements Jumping {
public JumpDog() {
}
public JumpDog(String name, int age) {
super(name, age);
}
//部分狗特有的方法
public void Jumping() {
System.out.println("狗会跳高");
}
}
|
|