class Order{ Scanner scan=new Scanner(System.in); public int Random() { Random rd=new Random(); int[] arr=rd.ints(1).toArray(); for(int i=0;i<arr.length;i++){ if(arr[i]<0) System.out.println(arr[i]*-1); } return rd.nextInt(); } public double totalPrice() { return shoppingCart.shoppinggoods.stream().mapToDouble(item -> item.getPrice() * item.getQuantity()).sum(); } // public double totalPrice() { // double sum = 0; // for (int i = 0; i < shoppingCart.shoppinggoods.size(); i++) { // sum += shoppingCart.shoppinggoods.get(i).getQuantity() * shoppingCart.shoppinggoods.get(i).getPrice(); // } // return sum; // } public void print() { System.out.println("请输入收货地址:"); String address=scan.nextLine(); System.out.println("id"+"\t"+"名称"+"\t"+"类型"+"\t"+"价格"+"\t"+"数量"); System.out.println(shoppingCart.shoppinggoods); System.out.println("共计:"+totalPrice()); System.out.println("订单编号:"+Random()); new User().print(); System.out.println("收货地址:"+address); } }怎么添加多态
时间: 2024-04-29 13:20:13 浏览: 75
要添加多态,需要在父类和子类之间建立继承关系,并且子类需要重写父类中的方法。在代码中,我们可以建立一个父类Order,然后建立两个子类OnlineOrder和OfflineOrder,这两个子类分别对应线上订单和线下订单。然后可以将print()方法定义在父类中,然后在子类中重写这个方法,使得它们分别实现自己的打印方式。这样,我们就可以实现多态了。
下面是示例代码:
```
class Order{
Scanner scan=new Scanner(System.in);
public int Random() {
Random rd=new Random();
int[] arr=rd.ints(1).toArray();
for(int i=0;i<arr.length;i++){
if(arr[i]<0)
System.out.println(arr[i]*-1);
}
return rd.nextInt();
}
public double totalPrice() {
return shoppingCart.shoppinggoods.stream().mapToDouble(item -> item.getPrice() * item.getQuantity()).sum();
}
public void print() {
System.out.println("请输入收货地址:");
String address=scan.nextLine();
System.out.println("id"+"\t"+"名称"+"\t"+"类型"+"\t"+"价格"+"\t"+"数量");
System.out.println(shoppingCart.shoppinggoods);
System.out.println("共计:"+totalPrice());
System.out.println("订单编号:"+Random());
new User().print();
System.out.println("收货地址:"+address);
}
}
class OnlineOrder extends Order{
public void print(){
// 实现线上订单的打印方式
}
}
class OfflineOrder extends Order{
public void print(){
// 实现线下订单的打印方式
}
}
```
在上面的示例代码中,我们在Order类中定义了print()方法,然后在OnlineOrder和OfflineOrder子类中分别重写了这个方法,实现了自己的打印方式。这样,在使用时,我们就可以根据需要实例化OnlineOrder或OfflineOrder对象,然后调用print()方法来打印订单信息,实现了多态。
阅读全文