Java連載52-單例模式的缺點以及抽象類

1、單例模式java

1.單例模式的缺點:單例模式的類型沒有子類,沒法被繼承。node

例如:下面的例子,因爲父類的構造方法是私有的,因此子類中的構造方法是沒法建立的,由於它是引用父類的構造方法git

 

package com.bjpowernode.java_learning;

​

public class D52_1_ {

  public static void main(String[] args) {

    HttpServlet52 h1 = new HttpServlet52();

  }

}

class Servlet52{

  private Servlet52() {}

}

class HttpServlet52 extends Servlet52{

 

}

2、抽象類github

1.如何定義抽象類微信

class關鍵字前面加上abstract學習

2.抽象類沒法被實例化大數據

3.雖然抽象類沒有辦法實例化,可是抽象類也有構造方法,該構造方法是​給子類建立對象用的。ui

4.抽象類中能夠定義抽象方法spa

抽象方法的​語法:.net

在方法的修飾符列表中添加abstract關鍵字,而且抽象方法應該以「;「結束,不能帶有"{}",例如​:public abstract void m1();

5.抽象類中不必定有抽象方法,可是抽象方法必須出如今抽象類中,所以繼承抽象類的子類中必須將父類中的抽象方法覆蓋(若是有抽象方法的話)

6.一個非抽象的類繼承抽象類,必須將抽象類中的抽象方法進行覆蓋,實現,重寫​。

 

package com.bjpowernode.java_learning;

​

public abstract class D52_2_AbstractClass {

​

  //Constructor

  D52_2_AbstractClass(){

    System.out.println("A......");

  }

 

  public abstract void m1();//抽象方法

 

  public static void main(String[] args) {

    D52_2_AbstractClass d1 = new B52();

  }

}

​

class B52 extends D52_2_AbstractClass{

  B52(){

    //這裏省略了super(),實際上默認是有的,父類的構造方法雖然調用了,可是並無建立父類對象。

    System.out.println("B......");

  }

  public void m1() {};

}

​

5、源碼:

D52_1_SingleMode.java

D52_2_AbstractClass.java

地址:

https://github.com/ruigege66/Java/blob/master/D52_1_SingleMode.java

https://github.com/ruigege66/Java/blob/master/D52_2_AbstractClass.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索