接口繼承的兩種方式


接口繼承的寫法1:在類名后寫上繼承的接口,然后在類的內部重寫方法

示例:

 1 class Consumer implements Runnable{
 2 
 3         private BlockingQueue<Integer> queue;
 4 
 5         public Consumer(BlockingQueue<Integer> queue){
 6             this.queue = queue;
 7         }
 8 
 9     @Override
10     public void run() {
11         try {
12             while (true) {
13                 Thread.sleep(new Random().nextInt(1000));
14                 queue.take();
15                 System.out.println(Thread.currentThread().getName()+"消費"+queue.size());
16             }
17                 } catch (InterruptedException e) {
18                     e.printStackTrace();
19             }
20     }
21 }

接口繼承的寫法2:直接new 一個接口類型的對象,再使用匿名內部類的方式重寫方法

示例:

 1  // 1.JDK普通線程池
 2     @Test
 3     public void testExecutorService() {
 4         Runnable task = new Runnable() {//實現Runnable接口,這里是匿名實現,方法中寫要執行的方法
 5             @Override
 6             public void run() {
 7                 System.out.println("Hello ExecutorService");
 8                 // logger.debug("Hello ExecutorService");
 9             }
10         };
11 
12         for (int i = 0; i < 10; i++) {
13             executorService.submit(task);//提交任務給線程池,就會安排線程處理
14         }
15 
16         sleep(10000);
17     }
18 
19  //Test中的線程執行完了就會結束,不會等一下看話有沒有任務,因此需要定義一個sleep方法讓這些線程等一下
20     private void sleep(long m) {//sleep方法經常拋異常,封裝一下,處理一下異常
21         try {
22             Thread.sleep(m);
23         } catch (InterruptedException e) {
24             e.printStackTrace();
25         }
26     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM