首页 > 其他 > 详细

0716作业

时间:2018-07-16 23:34:19      阅读:250      评论:0      收藏:0      [点我收藏+]

 

多态作业

 

一、 选择题

 

1.

关于Java中的多态,以下说法不正确的为(  B  )。(选择一项)

 

 

 

 

A

多态不仅可以减少代码量,还可以提高代码的可扩展性和可维护性

 

B.

把子类转换为父类,称为向下转型,自动进行类型转换

 

C.

多态是指同一个实现接口,使用不同的实例而执行不同的操作

 

D.

继承是多态的基础,没有继承就没有多态

 

2.

编译运行如下Java代码,输出结果是(   D  )。(选择一项)

 

class Base {

public void method(){

System.out.print ("Base method");

}

}

class Child extends Base{

public void methodB(){

System.out.print ("Child methodB");

}

}

class Sample {

public static void main(String[] args) {

Base base= new Child();

base.methodB();

}

}

 

 

 

 

A

Base method

 

B.

Child methodB

 

C.

Base method

Child methodB

 

D.

编译错误

 

3.

Java中,关于引用数据类型的类型转换说法正确的是(  AB   )。(选择项)

 

 

 

 

A

引用数据类型的类型转换有向上转型和向下转型

 

B.

向下转型,必须转换成其真实子类型,而不能随意转换

 

C.

向下转型是自动进行的,也称隐式转换

 

D.

向上转型可以使用instanceof操作符来判断转型的合法性

 

 

4.

给定如下Java程序,Test类中的四个输出语句输出结果依次是( C  )。(选择一项)

 

class Person {

String name="person";

public void shout(){

System.out.println(name);

}

}

class Student extends Person{

String name="student";

String school="school";

}

public class Test {

public static void main(String[ ] args) {

Person p=new Student();

System.out.println(p instanceof Student);

System.out.println(p instanceof Person);

System.out.println(p instanceof Object);;

System.out.println(p instanceof System);

}

}

 

 

 

 

A

true,false,true,false

 

B.

false,true,false,false

 

C.

true,true,true,编译错误

 

D.

true,true,false,编译错误

 

二、 判断题

  1. 将子类对象赋给父类引用变量,称为向下转型,将无法访问子类特有的方法。( F  )
  2. 继承是多态的基础,没有继承就没有多态。(  T )

 

三、 简答题

  1. 多态的含义和作用   

事物的多种形态就称作多态

多态可以提高代码的扩展性,提高代码的维护性

  1. 向上转型和向下转型

将父类引用指向子类对象就叫做向上转型

将父类引用类型强制转换成子类引用类型叫做向下转型

有向上转型才会有向下转型

 

四、 编码题

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

实现思路及关键代码

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

2) 定义比萨类

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

4) 方法:展示

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

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

程序运行结果如图所示

 (注:运行结果有问题)

import java.util.Scanner;
class  TestPizza1
{    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择想要制作的披萨:1.培根披萨 2.海鲜披萨");
        int i= sc.nextInt();
    
        switch(i){
        case 1:
            BaconPizza p1 = new BaconPizza();
            System.out.println("请输入培根克数:");
            int gram1= sc.nextInt();
            p1.setGram(gram1);
            System.out.println("请输入披萨大小");
            int size1 = sc.nextInt();
            p1.setSize(size1);
            System.out.println("请输入披萨价格");
            int price1 = sc.nextInt();
            p1.setPrice(price1);

            p1.print();
        break;
        case 2:
            SeafoodPizza p2 = new SeafoodPizza();
            System.out.println("请输入配料信息:");
            String b = sc.next();
            p2.setBurdening(b);
            System.out.println("请输入披萨大小");
            int size2 = sc.nextInt();
            p2.setSize(size2);
            System.out.println("请输入披萨价格");
            int price2 = sc.nextInt();
            p2.setPrice(price2);

            p2.print();
        break;
        default:
            System.out.println("请重新输入");
        break;
        }
    }
    
}
class Pizza
{
    String name="披萨";
    int price;
    int size;

    public Pizza(){}
    public Pizza(String name,int size,int price) {
        this.name = name;
        this.price = price;
        this.size = size;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setPrice(int price) {
        this.name = name;
    }
    public int getPrice() {
        return price;
    }
    public void setSize(int size) {
        this.name = name;
    }
    public int getSize() {
        return size;
    }

    //public abstract void show();

}
class BaconPizza extends Pizza
{    
    int gram;
    public BaconPizza(){}
    public BaconPizza(String name,int size,int price,int gram) {
        super(name,size,price);
        this.gram = gram;
    }
    
    public void setGram(int gram) {
        this.gram = gram;
    }
    public int getGram() {
        return gram;
    }

    public void print() {
        System.out.println("名称:"+"培根"+getName());
        System.out.println("价格:"+getPrice()+"");
        System.out.println("大小:"+getSize()+"");
        System.out.println("培根克数:"+getGram());    
    }
}
class SeafoodPizza extends Pizza
{
    String burdening;
    public SeafoodPizza(){}
    public SeafoodPizza(String name,int size,int price,String burdening) {
        super(name,size,price);
        this.burdening =burdening;
    }

    public void setBurdening(String burdening) {
        this.burdening = burdening;
    }
    public String getBurdening() {
        return burdening;
    }

    public void print() {
        System.out.println("名称:"+"海鲜"+getName());
        System.out.println("价格:"+getPrice()+"");
        System.out.println("大小:"+getSize()+"");
        System.out.println("配料:"+getBurdening());    
    }
}

 

 

 

 

五、 可选题

 

  1. 编写程序实现软料购买:编写程序,接收用户输入的信息,选择购买的饮料。可供选择的饮料有:咖啡、矿泉水和可乐。其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。购买可乐时可以选择:买可口可乐还是百事可乐。

程序运行效果如图所示。

 

 

0716作业

原文:https://www.cnblogs.com/zhangzheng1989/p/9321059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!