(1)抽象父类Fruit,包含以下属性和方法:
a)一个int类型的成员变量unitPrice,存放单价,单位为元/千克;
b)一个int类型的成员变量amount,存放重量,单位为千克。
c)一个double类型的成员变量discount,存放折扣,默认为1;
d)抽象方法count(int unitPrice, int amount, double discount):double,计算水果的实际价格。
e)抽象方法display():void,显示水果的信息。
(2)子类樱桃Cherry,继承父类Fruit,包含以下属性和方法:
a)新增一个String类型的成员变量origin,存放产地。默认为“山东”。
b)构造方法Cherry(origin, unitPrice, amount, discount),初始化樱桃的信息:产地、单价、折扣、重量。
c)构造方法Cherry(unitPrice, amount, discount),初始化樱桃的信息:单价、折扣、重量。
例如“樱桃: 产地= ,单价= ,折扣= ,重量= ”
d)实现父类的抽象方法display(),显示樱桃的信息,包括产地、名称、单价、折扣、重量。
e)实现父类的抽象方法count(int unitPrice, int amount, double discount):double,计算樱桃的具体金额。
(3)子类芒果Mango,继承父类Fruit,包含以下属性和方法:
a)新增一个String类型的成员变量breed,存放品种。默认为“腰芒”。
b)构造方法Mango(breed, unitPrice, amount, discount),初始化芒果的信息:品种、单价、折扣、重量。
c)构造方法Mango(unitPrice, amount, discount),初始化芒果的信息:单价、折扣、重量。
d)实现父类的抽象方法display(),显示芒果的信息,包括品种、名称、单价、折扣、重量。
e)实现父类的抽象方法count(int unitPrice, int amount, double discount):double,计算芒果的具体金额。
外汇IB http://www.fx61.com/ib.html
abstract class Fruit {
int unitPrice;
int amount;
double discount =1;
public abstract double count(int unitPrice,int amount,double discount);
public abstract void display();
}
class Cherry extends Fruit{
String origin ="山东";
Cherry(String origin,int unitPrice,int amount,double discount){
this.origin=origin;
this.unitPrice=unitPrice;
this.amount=amount;
this.discount=discount;
}
Cherry(int unitPrice,int amount,double discount){
this.unitPrice=unitPrice;
this.amount=amount;
this.discount=discount;
}
public void display(){
System.out.println("产地:"+origin+" 名称:樱桃"+" 单价:"+unitPrice+" 折扣:"+discount+" 重量"+amount);
}
public double count(int unitPrice,int amount,double discount){
return unitPrice*amount*discount;
}
}
class Mango extends Fruit{
String breed="腰芒";
Mango(String breed,int unitPrice,int amount,double discount){
this.breed=breed;
this.unitPrice=unitPrice;
this.amount=amount;
this.discount=discount;
}
Mango(int unitPrice,int amount,double discount){
this.unitPrice=unitPrice;
this.amount=amount;
this.discount=discount;
}
public void display(){
System.out.println("品种:"+breed+" 名称:芒果"+" 单价:"+unitPrice+" 折扣:"+discount+" 重量"+amount);
}
public double count(int unitPrice,int amount,double discount){
return unitPrice*amount*discount;
}
}
public class TestFruit{
public static void main(String[] args) {
Fruit[] fruits = {new Cherry("江苏", 15, 2, 0.8), new Mango(12, 2, 0.95), new Cherry(28, 3, 0.7)};
System.out.println("----------------------------");
for (int i = 0; i < fruits.length; i++)
fruits[i].display();
System.out.println("----------------------------");
//输出水果的总价钱
System.out.println("总价钱为:" + sum(fruits));
}
static double sum(Fruit[] fruits){
double sum=fruits[0].count(15,2,0.8)+fruits[1].count(12,2,0.95)+fruits[2].count(28,3,0.7);
return sum;
}
}