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