一、单例模式

1.单例模式的缺点:单例模式的类型没有子类,无法被继承。

例如:下面的例子,由于父类的构造方法是私有的,所以子类中的构造方法是无法创建的,因为它是引用父类的构造方法

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{

}

二、抽象类

1.如何定义抽象类

class关键字前面加上abstract

2.抽象类无法被实例化

3.虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是​给子类创建对象用的。

4.抽象类中可以定义抽象方法

抽象方法的​语法:

在方法的修饰符列表中添加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() {};

}

​

五、源码:

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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载52-单例模式的缺点以及抽象类的更多相关文章

  1. Java设计模式之单例模式(七种写法)

    Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton { private static Singleto ...

  2. Java 设计模式之单例模式(一)

    原文地址:Java 设计模式之单例模式(一) 博客地址:http://www.extlight.com 一.背景 没有太多原由,纯粹是记录和总结自己从业以来经历和学习的点点滴滴. 本篇内容为 Java ...

  3. Java设计模式之单例模式 - Singleton

    用来创建独一无二的,是能有一个实例的对象的入场券.告诉你一个好消息,单例模式的类图可以说是所有模式的类图中最简单的,事实上,它的类图上只有一个类!但是,可不要兴奋过头,尽管从类设计的视角来说很简单,但 ...

  4. [java设计模式]之单例模式

    -------------------此部分比較深入地解说了单例模式,原文链接已给出.兴许将涉及一些常见面试问题--------------------------- 原文地址:http://www. ...

  5. 关于Java中的对象、类、抽象类、接口、继承之间的联系

    关于Java中的对象.类.抽象类.接口.继承之间的联系: 导读: 寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系. 正文: 举个例子:如果 ...

  6. java设计模式之单例模式你真的会了吗?(懒汉式篇)

    java设计模式之单例模式你真的会了吗?(懒汉式篇) 一.什么是单例模式? 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供 ...

  7. java 设计模式之单例模式

    -------Success is getting what you want, happiness is wanting what you get. java设计模式之单例模式(Singleton) ...

  8. 【面试题002】java实现的单例模式,c++实现单例模式,实现禁止拷贝

    [面试题002]java实现的单例模式,c++实现单例模式,实现禁止拷贝  一 c++实现单例模式 保证一个类,在一个程序当中只有一个对象,只有一个实例,这个对象要禁止拷贝,注意这里要区别于java. ...

  9. 【Java学习笔记之二十一】抽象类在Java继承中的用法小结

    一.抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容.而抽象类是指在普通类的结构里面增加抽象方法的组成 ...

随机推荐

  1. CODING 祝大家中秋快乐!

  2. WASM 成为 HTML、CSS 与 JS 之后的第 4 门 Web 语言

    大家都知道,万维网联盟 W3C 认证的 Web 语言有 HTML.CSS 与 JavaScript,而近日联盟正式宣布 WebAssembly 核心规范(WebAssembly Core Specif ...

  3. VUE中 $on, $emit, v-on三者关系

    VUE中 $on, $emit, v-on三者关系 每个vue实例都实现了事件借口 使用$on(eventName)监听事件 使用$emit(eventName)触发事件 若把vue看成家庭(相当于一 ...

  4. 【洛谷5794】[THUSC2015] 解密运算(模拟)

    点此看题面 大致题意: 对于一个字符串,我们在其末尾添加一个'.',将字符串视作一个环,则可以从\(n+1\)个位置断开得到\(n+1\)个新串.现将这\(n+1\)个新串按字典序排序('.'的字典序 ...

  5. Windows10安装ubuntu16.04双系统教程

    写在前面:本教程为windows10安装ubuntu16.04(64位)双系统教程,是我多次安装双系统的经验总结,安装方法同样适用于ubuntu18.04(64位).为了直观和易于理解,我会尽量图文并 ...

  6. Springboot对SpringMVC如何扩展配置

    原文地址:http://www.javayihao.top/detail/171 概述 Springboot在web层的开发基本都是采用Springmvc框架技术,但是Springmvc中的某些配置在 ...

  7. Windows10+texlive2018+texstudio

    texlive2018+texstudio下载链接 链接: https://pan.baidu.com/s/1KjPJnw1kwMBCu3qGT9rIUg 提取码: g8ha 安装texlive 解压 ...

  8. 页面QQ临时对话的实现

    一.开通QQ服务 点我进入QQ推广官网>然后点击推广工具即可后面自己看中文 二.页面a标签 <a target="_blank" href="http://w ...

  9. spring一个标准的xml文件头

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. Add an Item to the New Action 在新建按钮中增加一个条目

    In this lesson, you will learn how to add an item to the New Action (NewObjectViewController.NewObje ...