您的位置:首页 > 其它

多态的含义和作用 和向上转型和向下转型

2017-07-25 19:26 1016 查看
1. 多态的含义和作用

多态:多样化

多态允许将子类的对象当作父类的对象使用,某父类型的引用指向其子类

型的对象,调用的方法是该子类型的方法

多态的作用:

·大大提高程序的可复用性。

·可以提高可扩充性和可维护性。

2. 向上转型和向下转型

向上转型很安全,子类转成父类(父类出面,而子类做事)

向下转型:父类再转成原有的子类,通过强制转换

1. 编写程序实现比萨制作。需求说明编写程序,接收用户输入的信息,选择需要制作的比萨。可供选择的比萨有:培根比萨和海鲜比萨。

实现思路及关键代码

1) 分析培根比萨和海鲜比萨

2) 定义比萨类

3) 属性:名称、价格、大小

4) 方法:展示

5) 定义培根比萨和海鲜比萨继承自比萨类

6) 定义比萨工厂类,根据输入信息产生具体的比萨对象

程序运行结果如图所示





 package com.pizza;

public class Pizza {

    String name;

    double price;

    int size;

    public Pizza(String name,double price,int size) {

           this.name=name;

           this.price=price;

           this.size=size;

    }

    public void show(){

        

    }

}

package com.pizza;

public class Peigpz extends Pizza{

     int shuliang;

    public Peigpz(String name,double price,int size,int

sl) {

       super(name, price, size);

       this.shuliang=sl;

    }

    public void show(){

        System.out.println("名称:"+name);

        System.out.println("价格:"+price+"元");

        System.out.println("大小"+size+"寸");

        System.out.println("培根个数:"+shuliang);

    }

    

}

package com.pizza;

public class Haixpz extends Pizza{

     String peiliao;

        public Haixpz(String name,double price,int

size,String pl) {

           super(name, price, size);

           this.peiliao=pl;

        }

        public void show(){

            System.out.println("名称:"+name);

            System.out.println("价格:"+price+"元");

            System.out.println("大小"+size+"寸");

            System.out.println("配料:"+peiliao);

        }

}

package com.pizza;

import java.util.Scanner;

public class PizzaFactory {

    public static void main(String[] args) {

        System.out.println("请选择想要制作的比萨(1.培根比萨2.海鲜比萨):");

        Scanner sc=new Scanner(System.in);

        int i=sc.nextInt();

        if(i==1){

            System.out.println("请输入培根个数:");

            int gs=sc.nextInt();

            System.out.println("请输入比萨大小:");

            int size=sc.nextInt();

            System.out.println("请输入比萨价格:");

            int price=sc.nextInt();

            Peigpz p=new Peigpz("培根比萨", 105, 12,25);

            p.show();

            }else if(i==2){

            System.out.println("请输入配料信息:");

            String info=sc.next();

            System.out.println("请输入比萨大小:");

            int size=sc.nextInt();

            System.out.println("请输入比萨价格:");

            int price=sc.nextInt();

            Haixpz h=new Haixpz("海鲜比萨", 78, 10,"虾仁、鱿鱼卷、墨鱼");

            h.show();

        }    

    }        

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: