多态实例-商品类

1)编写一个父类抽象类-商品类(Goods),具有:

属性:名字(name)—String类型, 价格(price)—double类型,产地(place)—String类型,并对商品名称、价格、产地进行封装

功能:输出商品信息showInfo抽象方法

2)定义Goods类的子类-娃哈哈矿泉水类(WahahaWater),具有:

构造方法:给名字、价格、产地属性赋初值

功能:showMessage方法,输出“我们不生产水,我们只是大自然的搬运工。”

实现本类的showInfo方法,输出商品的名称、价格、产地信息。

3)定义Goods类的子类-海尔冰箱类(HaierIceBox),具有:

构造方法:给名字、价格、产地属性赋初值

功能:discount方法,输出“海尔多门冰箱8折销售,预购从速。”

实现本类的showInfo方法,输出商品的名称、价格、产地信息。

4)定义主类Test,在其main方法中,使用多态技术,创建Goods子类的两个对象。

调用showInfo方法, 输出两种商品的名称、价格和产地信息。

调用主类的judge方法,判断两个对象分别是由哪个类创建,如果是WahahaWater类创建,调用showMessage方法,输出“我们不生产水,我们只是大自然的搬运工。”。 如果是HaierIceBox类创建,调用discount方法,输出“海尔多门冰箱8折销售,欲购从速。”

  1. public abstract class Goods {   
  2.     private String name;   
  3.     private double price;   
  4.     private String place;   
  5.        
  6.     public String getName() {   
  7.         return name;   
  8.     }   
  9.   
  10.     public void setName(String name) {   
  11.         this.name = name;   
  12.     }   
  13.   
  14.     public double getPrice() {   
  15.         return price;   
  16.     }   
  17.   
  18.     public void setPrice(double price) {   
  19.         this.price = price;   
  20.     }   
  21.   
  22.     public String getPlace() {   
  23.         return place;   
  24.     }   
  25.   
  26.     public void setPlace(String place) {   
  27.         this.place = place;   
  28.     }   
  29.   
  30.     public abstract void showInfo();   
  31. }   
  1. public class HaierIceBox extends Goods{   
  2.     public HaierIceBox(String name,double price,String place){   
  3.         super();   
  4.         setName(name);   
  5.         setPrice(price);   
  6.         setPlace(place);   
  7.     }   
  8.     public void discount(){   
  9.         System.out.println("海尔多门冰箱8折销售,预购从速。");   
  10.     }   
  11.     @Override  
  12.     public void showInfo() {   
  13.         // TODO Auto-generated method stub   
  14.         System.out.println("HaierIceBox"+getName()+getPrice()+getPlace());   
  15.     }   
  16. }   
  1. public class WahahaWater extends Goods{   
  2.   
  3.     public WahahaWater(String name,double price,String place){   
  4.         super();   
  5.         setName(name);   
  6.         setPrice(price);   
  7.         setPlace(place);   
  8.     }   
  9.     public void showMessage(){   
  10.         System.out.println("我们不生产水,我们只是大自然的搬运工。");   
  11.     }   
  12.     @Override  
  13.     public void showInfo() {   
  14.         // TODO Auto-generated method stub   
  15.         System.out.println("WahahaWater"+getName()+getPrice()+getPlace());   
  16.     }   
  17.        
  18. }  
  1. public class Test {   
  2.   
  3.     public static void judge(Goods g){   
  4.         if(g instanceof HaierIceBox)   
  5.             ((HaierIceBox) g).discount();   
  6.         else  
  7.             ((WahahaWater) g).showMessage();   
  8.     }   
  9.     public static void main(String[] args) {   
  10.         // TODO Auto-generated method stub   
  11.         Goods h=new HaierIceBox("海尔冰箱",2899,"青岛");   
  12.         Goods w=new WahahaWater("农夫山泉矿泉水",2,"杭州");   
  13.         w.showInfo();   
  14.         h.showInfo();   
  15.         judge(w);   
  16.         judge(h);   
  17.     }   
  18.   
  19. }   
 如未特殊声明,文章均为原创。
 本文标题:多态实例-商品类
 本文链接:https://manwish.cn/article/%e5%a4%9a%e6%80%81%e5%ae%9e%e4%be%8b.html

留下评论