题目要求:
- 声明一个抽象类Pet,封装属性name和sex,声明一个带有两个参数的构造函数,声明抽象方法void talk()和void eat();
- 声明一个Dog类继承自Pet,封装属性color,声明带有三个参数的构造函数,复写talk()和eat()方法;
- 声明一个Cat类继承自Pet,封装属性weight,声明带有三个参数的构造函数,复写talk()和eat()方法;
- 编写测试类,通过有参构造函数实例化Dog类对象,调用talk()方法和eat()方法;通过有参构造函数实例化Cat类对象 ,调用talk()方法和eat()方法;
package case1;
import java.util.Scanner;
public class Task1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String dogName = sc.next();
String dogSex = sc.next();
String dogColor = sc.next();
String catName = sc.next();
String catSex = sc.next();
double catWeight = sc.nextDouble();
Dog d=new Dog(dogSex,dogName,dogColor);
d.talk();
d.eat();
Cat c=new Cat(catSex,catName,catWeight);
c.talk();
c.eat();
}
}
abstract class Pet {
public String sex;
public String name;
public Pet(String s,String n){
this.sex = s;
this.name = n;
}
public void talk(){
}
public void eat(){
}
}
class Dog extends Pet {
private String color;
public Dog(String s, String n,String c) {
super(s, n);
this.color=c;
}
public void talk(){
System.out.println("名称:"+name+",性别:"+sex+",颜色:"+color+",汪汪叫");
}
public void eat(){
System.out.println(""+name+"吃骨头!");
}
public void color(){
}
}
class Cat extends Pet {
public double weight;
public Cat(String s, String n,double w) {
super(s, n);
this.weight=w;
}
public void talk(){
System.out.println("名称:"+name+",性别:"+sex+",体重:"+weight+"kg,喵喵叫");
}
public void eat(){
System.out.println(""+name+"吃鱼!");
}
}