编写抽象Animal类与其子类Dog类与Cat类,具体要求如下:
- Animal抽象类:私有name属性(String型),私有age属性(int型),抽象方法info(),抽象方法speak(),构造方法,setter和getter
- Dog类:增加灵性agility属性(int型),覆盖info()和speak()方法,构造方法,setter和getter
- Cat类:增加捕鼠能力mousingAbility属性(int型),覆盖info()和speak()方法,构造方法,setter和getter
-
子类重写后的info()方法输出子类特殊属性和名字、年龄属性(具体格式见输出样例);
-
子类重写后的speak()方法输出各子类叫声(具体格式见输出样例)
- 在子类构造方法中初始化子类特殊属性,并调用父类构造方法初始化父类属性
已有的主类Main定义:
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Animal a1=new Dog(input.next(),input.nextInt(),input.nextInt());
Animal a2=new Cat(input.next(),input.nextInt(),input.nextInt());
a1.info();
a1.speak();
System.out.println(a1.getName());
System.out.println(a1.getAge());
a2.info();
a2.speak();
System.out.println(a2.getName());
System.out.println(a2.getAge());
input.close();
}
}
/* 请在这里填写你的Animal类、Dog类、Cat类 */
输入样例:
第一行输入狗的名字、年龄和灵性值
第二行输入猫的名字、年龄和捕鼠能力
DogJohn 3 123
CatMike 4 200
结尾无空行
输出样例:
前四行为程序结构测试数据,请严格按题目要求设计类即可。
true
true
true
true
狗的名字是DogJohn,年龄是3,灵性值是123
旺旺
DogJohn
3
猫的名字是CatMike,年龄是4,捕鼠能力是200
喵喵
CatMike
4
代码如下:
abstract class Animal{
private String name;
private int age;
abstract void info();
abstract void speak();
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;
}
}
class Dog extends Animal{
private int agility;
public Dog(String n,int a,int b){
super.setName(n);
super.setAge(a);
this.setAgility(b);
}
public int getAgility() {
return agility;
}
public void setAgility(int agility) {
this.agility = agility;
}
public void info() {
System.out.println("狗的名字是"+getName()+",年龄是"+getAge()+",灵性值是"+getAgility());
}
public void speak() {
System.out.println("旺旺");
}
}
class Cat extends Animal{
private int mousingAbility;
public Cat(String n,int a,int b){
super.setName(n);
super.setAge(a);
this.setMousingAbility(b);
}
public int getMousingAbility() {
return mousingAbility;
}
public void setMousingAbility(int mousingAbility) {
this.mousingAbility = mousingAbility;
}
public void info() {
System.out.println("猫的名字是"+getName()+",年龄是"+getAge()+",捕鼠能力是"+getMousingAbility());
}
public void speak() {
System.out.println("喵喵");
}
}