• 0716作业


    多态作业

    一、 选择题

     

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

    程序运行效果如图所示。

     

  • 相关阅读:
    1.23学习总结:文件流
    vue-router重写push方法,解决相同路径跳转报错,解决点击菜单栏打开外部链接
    手把手教Electron+vue,打包vue项目,打包成桌面程序。
    后台获取的map集合封装json
    VUE同级组件之前方法调用
    字节跳动今日头条-抖音小程序序html富文本显示解决办法
    别总写代码,这130个网站比涨工资都重要
    vue 组件之间的自定义方法互相调用
    swiper轮播图出现疯狂抖动(小程序)
    vue通过地址下载文件
  • 原文地址:https://www.cnblogs.com/zhangzheng1989/p/9321059.html
Copyright © 2020-2023  润新知