1.题目:
2.官方代码:
// 宠物基类
class Pet {
protected double foodPricePerJin; // 食物单价(元/斤)
protected double foodQuantityPerDay; // 每天所需食物量(斤)
// 计算每天的食物花费
public double calculateDailyCost() {
return foodPricePerJin * foodQuantityPerDay;
}
}
// 狗类,继承自宠物类
class Dog extends Pet {
public Dog() {
this.foodPricePerJin = 1.5; // 狗的食物单价
this.foodQuantityPerDay = 2; // 狗每天所需食物量
}
}
// 猫类,继承自宠物类
class Cat extends Pet {
public Cat() {
this.foodPricePerJin = 2.5; // 猫的食物单价
this.foodQuantityPerDay = 0.5; // 猫每天所需食物量
}
}
public class Main {
public static void main(String[] args) {
// 创建宠物实例
Dog dog1 = new Dog();
Dog dog2 = new Dog();
Cat cat1 = new Cat();
// 计算每个宠物的每天花费并累加
double totalCost = dog1.calculateDailyCost() + dog2.calculateDailyCost() + cat1.calculateDailyCost();
// 输出总花费
System.out.println("sum=" + totalCost);
}
}
在这个程序中,我们首先定义了一个Pet
类,它包含两个受保护的成员变量foodPricePerJin
和foodQuantityPerDay
,以及一个计算每日食物花费的方法calculateDailyCost
。
然后,我们定义了两个子类Dog
和Cat
,它们分别继承自Pet
类,并在构造函数中设置了各自的食物单价和每天所需食物量。
在PetFoodCostCalculator
类的main
方法中,我们创建了3个宠物的实例(2条狗和1只猫),并调用了它们的calculateDailyCost
方法来计算每天的食物花费。最后,我们将这些花费相加,并输出总花费。
注意:这个程序假设所有宠物每天的食物单价和数量都是固定的,并且不随时间的推移而改变。如果需要更复杂的逻辑(例如,食物价格会根据季节或市场情况变化),则需要进一步扩展这个程序。
2.自己敲的代码:
class Pet{ //创建类,用{}
protected double qian; //封装属性
protected double shulian;//封装属性
public double yitianhuaqian(){ //创建类方法,注意括号
return qian*shulian;
}
}
class Dog extends Pet{ //继承父类
public Dog(){ //定义子类
this.qian = 1.5;
this.shulian=2;
}
}
class Cat extends Pet{
public Cat(){
this.qian=2.5;
this.shulian=0.5;
}
}
public class Nain{
public static void main(String[] args){
Dog dog1=new Dog(); //调用类方法 类名+对象1=new Dog()
Dog dog2=new Dog();
Cat cat =new Cat();
double sum = dog1.yitianhuaqian()+dog2.yitianhuaqian()+cat.yitianhuaqian(); //调用类方法
System.out.println("sum="+sum);
}
}
//输出 sum=7.25
3.收获:
a.父类封装属性,子类定义属性;
b.调用类方法;
c.调用类;
d.创建类方法
总结是非常重要的,没有总结就没有收获。