定义一个Animal类,定义四个实例变量:name、age、color、food;使用构造函数,初始化实例属性name、age、color、food;定义一个get_age方法,通过对象调用get_age方法时,输出年龄信息,比如“汤姆:3岁”;定义一个eat方法,通过调用eat方法时,输出相关信息,比如“旺财:肉”;通过Animal类创建Cat对象、Dog对象、Mouse对象,它们的name分别是汤姆、旺财、杰瑞,age分别是3、2、3,food分别是鱼、肉、奶酪,color分别是gray、white、brown。
时间: 2023-07-10 21:08:39 浏览: 159
```python
class Animal:
def __init__(self, name, age, color, food):
self.name = name
self.age = age
self.color = color
self.food = food
def get_age(self):
print(self.name + ":" + str(self.age) + "岁")
def eat(self):
print(self.name + ":" + self.food)
cat = Animal("汤姆", 3, "gray", "鱼")
dog = Animal("旺财", 2, "white", "肉")
mouse = Animal("杰瑞", 3, "brown", "奶酪")
cat.get_age() # 汤姆:3岁
dog.eat() # 旺财:肉
mouse.get_age() # 杰瑞:3岁
```
相关问题
设计动物类Animal,要求如下:(1)protected的成员变量包括名称name、年龄age、性别sex、腿的数量legNum、体重weight;(2)定义空构造方法,定义能够初始化所有成员变量的构造方法;(3)省略setter和getter方法;(4)功能方法包括:protected方法eating(String food);重写Object类的toString()方法返回Animal对象的所有成员变量。 Pig类继承了Animal,Pig类的要求如下:(1)成员变量有长度length,高度height和颜色color;(2)定义构造方法能够初始化所有成员变量;(3)省略setter和getter方法;(4)功能方法包括:重写toString()方法返回Pig对象的所有成员变量;重写eating(String food)方法,food只能是Pig可以吃的食物;定义成员方法walking()表示Pig可以行走。 Chicken类继承Animal,Chicken类的要求如下:(1)成员变量有鸡冠颜色combColor;(2)定义构造方法能够初始化所有成员变量;(3)省略setter和getter方法;(4)功能方法有:重写toString()方法返回Chicken对象的所有成员变量,重写eating(String food)方法输出吃的动作和食物,定义成员方法flying()表示鸡可以飞。 定义测试类,完成如下任务:(1)创建猪对象佩奇peiqi,输出peiqi的基本信息,给peiqi喂白菜吃,peiqi在行走;(2)创建鸡对象杏花鸡xhj,输出xhj的基本信息,给xhj喂虫子,xhj在飞用java
好的,下面是使用Java语言实现的示例代码,来回答你的问题:
Animal类:
```java
public class Animal {
protected String name;
protected int age;
protected String sex;
protected int legNum;
protected double weight;
public Animal() {
}
public Animal(String name, int age, String sex, int legNum, double weight) {
this.name = name;
this.age = age;
this.sex = sex;
this.legNum = legNum;
this.weight = weight;
}
protected void eating(String food) {
System.out.println(name + " is eating " + food);
}
@Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", legNum=" + legNum +
", weight=" + weight +
'}';
}
}
```
Pig类:
```java
public class Pig extends Animal {
private double length;
private double height;
private String color;
public Pig(String name, int age, String sex, int legNum, double weight, double length, double height, String color) {
super(name, age, sex, legNum, weight);
this.length = length;
this.height = height;
this.color = color;
}
@Override
public String toString() {
return "Pig{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", legNum=" + legNum +
", weight=" + weight +
", length=" + length +
", height=" + height +
", color='" + color + '\'' +
'}';
}
@Override
protected void eating(String food) {
if (food.equals("cabbage")) {
System.out.println(name + " is eating " + food);
} else {
System.out.println(name + " cannot eat " + food);
}
}
public void walking() {
System.out.println(name + " is walking");
}
}
```
Chicken类:
```java
public class Chicken extends Animal {
private String combColor;
public Chicken(String name, int age, String sex, int legNum, double weight, String combColor) {
super(name, age, sex, legNum, weight);
this.combColor = combColor;
}
@Override
public String toString() {
return "Chicken{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", legNum=" + legNum +
", weight=" + weight +
", combColor='" + combColor + '\'' +
'}';
}
@Override
protected void eating(String food) {
System.out.println(name + " is pecking " + food);
}
public void flying() {
System.out.println(name + " is flying");
}
}
```
测试类:
```java
public class Test {
public static void main(String[] args) {
// 创建一只佩奇猪
Pig peiqi = new Pig("Peiqi", 3, "Female", 4, 80.0, 1.5, 0.8, "Pink");
System.out.println(peiqi.toString());
peiqi.eating("cabbage");
peiqi.walking();
// 创建一只杏花鸡
Chicken xhj = new Chicken("Xinghua", 1, "Male", 2, 1.0, "Red");
System.out.println(xhj.toString());
xhj.eating("worms");
xhj.flying();
}
}
```
在上面的代码中,我们首先定义了一个名为“Animal”的父类,它有一些protected成员变量如名称name、年龄age、性别sex、腿的数量legNum、体重weight等,还有一个空构造方法和一个能够初始化所有成员变量的构造方法。我们省略了getter和setter方法,并定义了一个名为“eating”的protected方法来表示动物吃东西的行为。我们还重写了Object类的toString()方法,以便在测试时打印出Animal对象的所有成员变量。
接下来,我们创建了一个名为“Pig”的子类,它继承了父类“Animal”的所有属性和方法,并新增了一些成员变量如长度length、高度height和颜色color等。我们使用构造函数来初始化父类变量和新增变量,并重写了父类的“eating”方法和新增了一个名为“walking”的方法来表示猪的行走行为。
然后,我们创建了一个名为“Chicken”的子类,它继承了父类“Animal”的所有属性和方法,并新增了一个成员变量如鸡冠颜色combColor。我们使用构造函数来初始化父类变量和新增变量,并重写了父类的“eating”方法和新增了一个名为“flying”的方法来表示鸡的飞行行为。
最后,我们创建了一个名为“Test”的测试类,在其中分别创建了一只猪对象和一只鸡对象,并测试了它们的基本信息以及相应的行为。
java创建一个父类:动物,拥有姓名、出生日期、物种这三个属性。有吃东西和输出年龄的方法
好的,以下是Java代码示例:
```
public class Animal {
private String name;
private String birthdate;
private String species;
public Animal(String name, String birthdate, String species) {
this.name = name;
this.birthdate = birthdate;
this.species = species;
}
public String getName() {
return name;
}
public String getBirthdate() {
return birthdate;
}
public String getSpecies() {
return species;
}
public void eat(String food) {
System.out.println(name + " is eating " + food);
}
public void outputAge() {
// 计算年龄并输出
// 这里假设birthDate为"yyyy-MM-dd"格式的字符串,可以自行调整
LocalDate birthLocalDate = LocalDate.parse(birthdate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate now = LocalDate.now();
int age = Period.between(birthLocalDate, now).getYears();
System.out.println(name + "'s age is " + age);
}
}
```
这是一个父类 Animal,具有姓名、出生日期、物种三个属性,以及吃东西和输出年龄的方法。构造函数用于初始化这三个属性,eat方法用于输出动物正在吃的食物,outputAge方法用于计算年龄并输出。注意,这里使用了Java 8的时间API来计算年龄。
阅读全文