一、单例模式

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. Android 监听手机锁屏的工具类

    自定义 ScreenListener package com.example.teagardenhd.Listener; import android.content.BroadcastReceive ...

  2. vue 脚手架

    Vue 脚手架的基本用法 1. 基于 3.X 版本的脚手架 创建vue项目 命令行(CLI) 的方式创建 vue 项目 vue create my-project 图形化界面(GUI) 的方式创建 v ...

  3. [PHP] php使用event扩展的io复用测试

    先要安装event扩展,这样才可以使用libevent的事件机制 pecl install event 测试代码 //连接重用 //创建资源流的上下文 $context=stream_context_ ...

  4. mysql分组报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    环境:Server version: 5.7.27-0 ubuntu 18.04.1 (Ubuntu) 执行分组语句:select * from pet group by owner;时报错: mys ...

  5. nginx学习(六):日志切割

    现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为多份不同的小文件作为日志,切 ...

  6. PHPStorm 初遇 Xdebug (xdebug代码调试及性能分析)

    centos 7 下PHP7安装xdebug # 下载xdebug wget https://xdebug.org/files/xdebug-2.7.2.tgz # 解压 tar -xf xdebug ...

  7. libwebrtc & libmediasoupclient编译

    本文简单介绍在Ubuntu下libwebrtc的编译过程. 由于网速限制,实际编译过程是在远程vps上编译滴. 系统环境 Ubuntu 18.04系统的虚拟主机. root@vultr:~# pwd ...

  8. Python3 获取系统资源

    cpu disk mem import osimport psutilos.chdir(os.getcwd()) #cpu def get_cpu_info(): cpu_percent=psutil ...

  9. 你可能会忽略的 Git 提交规范

    一.为什么需要规范? 无规矩不成方圆,编程也一样. 如果你有一个项目,从始至终都是自己写,那么你想怎么写都可以,没有人可以干预你.可是如果在团队协作中,大家都张扬个性,那么代码将会是一团糟,好好的项目 ...

  10. Spring Boot Redis 解析

    redis使用示例 本示例主要内容 使用lettuce操作redis redis字符串存储(RedisStringController.java) redis对象存储(RedisObjectContr ...