抽象類 接口

       抽象類: 聲明方法的存在而不去實現它的類被叫作抽象類(abstract class),它用於要建立一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的狀況。java

  1.         不能建立abstract 類的實例。函數

  2.         然而能夠建立一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。spa

  3.         不能有抽象構造函數或抽象靜態方法。Abstract 類的子類爲它們父類中的全部抽象方法提供實現,不然它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類能夠在類中實現這些方法。code

  4. package Text_1;
    abstract class Abs{
     public int a;
     public int b = 10;
     public abstract void foo();
     public abstract void fun();
    }
    class Test_abs extends Abs{
     public void getValue(){
      a = 12;
      b = 24;
      System.out.println(" a = " + a + "  b = " + b );
     }
     
     public void show(){
      System.out.println("Test_abs : " );
      foo();
      fun();
     }
     
     public void fun(){
      System.out.println("in class Text_abs in fun()");
     }
     
     public void foo(){
      System.out.println("in class Text_abs in foo() ");
     }
    }
    public class Inter_Abstra {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Test_abs a = new Test_abs();
      a.show();
      a.getValue();
     }
    }

    結果:對象

  5. Test_abs :
    in class Text_abs in foo()
    in class Text_abs in fun()
     a = 12  b = 24
    繼承

     接口(interface)是抽象類的變體。在接口中,全部方法都是抽象的。接口

  1.         多繼承性可經過實現這樣的接口而得到。get

  2.         接口中的全部方法都是抽象的,沒有一個有程序體。接口只能夠定義static final成員變量。class

  3.         接口的實現與子類類似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)全部這種接口的方法。而後,它能夠在實現了該接口的類的任何對象上調用接口的方法。因爲有抽象類,它容許使用接口名做爲引用變量的類型。一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換,instanceof 運算符能夠用來決定某對象的類是否實現了接口。變量

    package Text_1;
    interface Inter{
     public int a = 20;
     public int b = 10;
     public abstract void foo();
     public abstract void fun();
    }
    class Test_abs implements Inter{
     public void getValue(){
      System.out.println(" a = " + a + "  b = " + b );
     }
     
     public void show(){
      System.out.println("Test_Inter : " );
      foo();
      fun();
     }
     
     public void fun(){
      System.out.println("in class Text_Inter in fun()");
     }
     
     public void foo(){
      System.out.println("in class Text_Inter in foo() ");
     }
    }
    public class Inter_Inter {
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      Test_abs a = new Test_abs();
      a.show();
      a.getValue();
     }
    }


結果:

Test_Inter : in class Text_Inter in foo() in class Text_Inter in fun() a = 20  b = 10

相關文章
相關標籤/搜索