我的java學習日記(8)

Java學習第八節 之接口以及簡單工廠方法

一、           抽象類

父類方法前加abstract即可把父類變成抽象類,但是父類的這些方法子類必須重寫纔可調用。

規則:1、不可以創建對象,即new對象;

      2、子類繼承抽象類必須重寫抽象方法;

      3、若子類不重寫,則可以將其類也變成抽象類。

二、           接口,關鍵字是interface

1、接口即是一個規範,一個規則,裏邊全部都是抽象類。要求子類重寫。

2Java對比C++C++是可以實現多重繼承的,而java只能單一繼承,一個類只能有一個父類,但是可以用接口實現多繼承。

3、接口也是父類,但是隻有聲明。裏邊的方法要寫public,即使不寫也要默認爲public,所有方法只能聲明,不能實現。接口也可以聲明常量。

4、需要實現接口方法,必須通過子類重寫。實現關鍵字是implements.

注意:①接口和接口之間可以繼承。

②一個類可以實現多個接口。

③聲明接口,必須應用接口編程。

   

三、           equalstoString方法

1equals是一個返回布爾值的方法,它對該類的兩個方法進行比較,看它們是否滿足“等於”的直觀概念。

例如:date1.equals(date2)等價於date2.equals(date1),表示date1date2中實例對象的比較,如果相同則返回true,否則返回false

2toString方法應返回一個代表主叫對象的字符串。如果一個類有一個toString方法,就可以使用該類的一個對象作爲System.out.printlnSystem.out.print方法的自變量,如果其要輸出的不是String類型的話,就會自動調用toString()方法。

例如:System.out.println(date);等同於System.out.println(date.toString());它很容易讓我們把一個對象輸出到屏幕上。

3instanceofjavaphp的一個二元操作符(運算符),和==>,<是同一類東西,也是java的保留關鍵字。它的作用是判斷其左邊對象是否爲右邊類的實例。它是通過返回個布爾值來指出。

例如:(說明A是一個定義好的對象類,a是一個變量,result是布爾類型)

    result = ainstanceof A;

 

四、簡單工廠法。

     

代碼實現:

interface saler

{

  public void sale();

   public void back();

}

 

  //飛機售票員1

   class saler1 implements saler{

     public void sale(){

     System.out.println("sale");

     }

     public void back(){

     System.out.println("back");

     }

   }

   //火車售票員2

   class saler2 implements saler{

    public void sale(){

     System.out.println("sale");

     }

     public void back(){

     System.out.println("back");

     }

   }

  //汽車售票員3

  class saler3 implements saler{

   public void sale(){

     System.out.println("sale");

     }

     public void back(){

      System.out.println("back");

     }

  }

  //新增高鐵售票員4

  class saler4 implements saler{

     public void sale(){

     System.out.println("sale");

     }

     public void back(){

     System.out.println("back");

     }

  }

  //工廠類

 class factory{

     static saler name(String type){

     if(type.equals("plane")){

       return new saler1();

     }else if(type.equals("train")){

       return new saler2();

      }else if(type.equals("bus")){

        return new saler3();

         }else if(type.equals("高鐵")){

         return new saler4();

          } else{

       return null;

     }

  }

 }

 //主方法類

 public class sale1{

    public static void main(String[] args){

    saler s=factory.name("plane");

     s.sale();

     s.back();

     salers1=factory.name("train");

     s1.sale();

     s1.back();

     salers2=factory.name("bus");

     s2.sale();

     s2.back();

     salers3=factory.name("高鐵");

     s3.sale();

     s3.back();

    }

 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章