java oop部分的一些小結1

來源:互聯網
上載者:User

1 在繼承中,比如
    class a

     {

      void show() {  }

   }

   class b extends a

 {

   static void show() {} //這裡是錯誤的,因為繼承的時候,父類的非靜態方法,不能在子類中被覆蓋為靜態方法.

 

  }

 

2 class a

   {

   int i;

  A(int i)

  {

   this.i=i*2;

   }

}

 

  class B extends  A

  {

   public static void main(String[] args)

  {

     B b=new B(2);

   }

B(int i)

  {

System.out.println(i);

}

  }

 

  其中,本例中由於子類B繼承A,在子類的建構函式執行時,如果沒在子類中顯式指定調用父類的某個構造器,會首先執行父類的無參數建構函式,但A類中沒這樣的函數,所以發生編譯錯誤.因此可以加上super(2);

 

3

  A  靜態方法不能訪問執行個體(非靜態)變數
       int x=12;

      static void a()

    {

        輸出x;//錯誤

     }

   B  靜態方法不能訪問非靜態方法
      void go()

     static void domore()

   {

      go();

    }

   C  靜態方法能訪問景泰方法或變數
       static int x;

     static void a()

      static void b()
       {

         訪問x;

         a();

}

 

 4 靜態方法必須實現,和abstract是冤家,比如
   static abstract void () {..} 是錯誤的

5 靜態方法中也不能有super關鍵字,因為super是跟具體的類的執行個體有關,跟static相矛盾.

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.