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();
}
}
}