【问题标题】:Run time binding in java using interfaces使用接口在java中运行时绑定
【发布时间】:2019-03-30 16:21:14
【问题描述】:

// 物品类

import java.io.*;

    interface Item {
        void read();
          void show();
    }

    class Book implements Item {

         String name,author,publication;
         public void read() {
         Console con  = System.console();

        System.out.println("Enter Name of the Book:");
        name = con.readLine();

        System.out.println("Enter Author Name:");
        author = con.readLine();

        System.out.println("Enter Publication of the book:");
        publication = con.readLine();  
    }


         public void show() {
         System.out.println("List Of Issued Items");
          System.out.println("Name  :"+name);
              System.out.println("Author  :"+author);
             System.out.println("Publication :"+publication);
        } 
    }

       class Dvd implements Item {

       String dname,director,category;

        public void read() {
        Console con  = System.console();

         System.out.println("Enter Name of the dvd ");
         dname = con.readLine();

         System.out.println("Enter Director Name");
         director = con.readLine();

         System.out.println("Enter Category of the dvd: ");
         category = con.readLine();
        }

         public void show() {
         System.out.println("List Of Issued Items");
           System.out.println("Name  :"+dname);
           System.out.println("Director  :"+director);
         System.out.println("Category :"+category);
        } 
      }

库类

import java.io.*;
class Library {
    public static void main(String args[]) {

        Console con  = System.console();
        Item arr[] = new Item[2];
        Item a;

        for(int i=0;i<arr.length;i++) {
            System.out.println("Enter Your Choice : < b / d >");
            String ch = con.readLine();


        switch(ch) {
            case "b": 
                a = new Book();
                a.read();
                a.show();
                break;

            case "d": 
                a = new Dvd();
                a.read();
                a.show();
                break;

            default:
            System.out.println(" You Enetred The Wrong Choice !!!");    
            }
        }
    }
}

在这段代码中,我创建了两个类,即 Item 和 Libraryy 。 在运行时动态绑定已成功完成,但在读取任何选项后它会同时显示结果,我想先输入所有选项后显示所有结果。

为了存储引用,我使用了存储我选择类型的引用的数组。

【问题讨论】:

  • 在数组中存储引用不能正常工作,您需要将它们存储到数组索引中。 arr[i] = 新书(); arr[i].read();

标签: java binding


【解决方案1】:

**//类项目很好**

import java.io.*;

interface Item {
    void read();
      void show();
}

class Book implements Item {

     String name,author,publication;
     public void read() {
     Console con  = System.console();

    System.out.println("Enter Name of the Book:");
    name = con.readLine();

    System.out.println("Enter Author Name:");
    author = con.readLine();

    System.out.println("Enter Publication of the book:");
    publication = con.readLine();  
}


     public void show() {
     System.out.println("List Of Issued Items");
      System.out.println("Name  :"+name);
          System.out.println("Author  :"+author);
         System.out.println("Publication :"+publication);
    } 
}

   class Dvd implements Item {

   String dname,director,category;

    public void read() {
    Console con  = System.console();

     System.out.println("Enter Name of the dvd ");
     dname = con.readLine();

     System.out.println("Enter Director Name");
     director = con.readLine();

     System.out.println("Enter Category of the dvd: ");
     category = con.readLine();
    }

     public void show() {
     System.out.println("List Of Issued Items");
       System.out.println("Name  :"+dname);
       System.out.println("Director  :"+director);
     System.out.println("Category :"+category);
    } 
  }

// 类库

import java.io.*;
class Library {
    public static void main(String args[]) {

    Console con  = System.console();
        Item arr[] = new Item[2];
        Item a;

        for(int i=0;i<arr.length;i++) 
    {
        System.out.println("Enter Your Choice : < b / d >");
            String ch = con.readLine();


                   switch(ch) 
        {

            case "b": 
                arr[i] = new Book();
                arr[i].read();
            break;

            case "d": 
                arr[i] = new Dvd();
            arr[i].read();
            break;

            default:
            System.out.println(" You Enetred The Wrong Choice !!!");    
            }
            }

             for(int i=0;i<arr.length;i++)
                arr[i].show();                          


      }
}

【讨论】:

    猜你喜欢
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    相关资源
    最近更新 更多