抽象类的理解

2023-11-10

package com.test.basic.chapter4.abstractDemo;

/**
 *
 *
 * 一、java抽象类的作用
 *
 * java抽象类的作用具体的可以分成以下的三点:
 *
 * 1、抽象类通常都是用来表征对问题领域进行分析、设计中得出的抽象概念,是对大多数看上去不同,可是本质上却是相同的具体概念的抽象
 *
 * 2、在面向对象方法当中,抽象类主要是用来进行类型隐藏
 *
 * 构造出一个固定的一组行为的抽象描述,可是这组行为却可以有任意个可能的具体实现方式,这个抽象描述就是我们所说的抽象类
 *
 * 这一组任意个可能的具体实现就表现为所有可能的派生类
 *
 * 模块能够操作一个抽象体
 *
 * 因为模块依赖于一个固定的抽象体,所以它可以是不允许修改的
 *
 * 3、通过从这个抽象体派生,也能够扩展这个模块的行为功能
 *
 * 为了可以实现面向对象设计的一个最核心的原则,也就是OCP,抽象类可以说是这当中一个很关键的东西
 *
 * 二、抽象类作用例子//抽象类的作用;模板作用(本例中:
 *
 * //抽象的父类中,父类的普通方法依赖于一个抽象方法,而抽象方法则推迟到子类中
 *
 * //去实现)
 * 抽象类
 * 注意:抽象类不一定有抽象方法,反过来,有抽象方法的类必是抽象类
 */
public abstract class Animal {
    String name;
    int age;
    //动物会叫
    //抽象方法没有方法体
    public abstract void cry();
}
package com.test.basic.chapter4.abstractDemo;

/**
 *
 * 功能:抽象类演示
 */
public class AbstractDemo {
    public static void main(String[] args) {
        //抽象类不能被实例化
//抽象方法没有方法体,实例化调用方法又有什么用呢?????????
//        Animal a = new Animal();
        Animal cat = new Cat();
        cat.cry();
    }
}


package com.test.basic.chapter4.abstractDemo;

/**
 *
 * 当一个类继承的父类是抽象类,需要实现抽象类的所有抽象方法
 */
public class Cat extends Animal {
    @Override
    public void cry() {
        System.out.println("猫猫叫");
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

抽象类的理解 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • Java中的Thread类

    目录 一 什么是Thread类 二 Thread类的基本用法 三 线程的并发执行 一 什么是Thread类 在java标准库中 提供了一个Thread类 用来表示 操作线程 Thread类可以视为是Java标准库提供的API Java是支持
  • img图片在限定尺寸下等比缩放;点击查看原图

    一 图片等比缩放 效果 html div class row img src div div class row div 查看原图 div div css 对img外层div尺寸限制 img长宽自适应 imgbox max width 10
  • Vue脚手架

    安装 前提 Node js安装 打开想要建脚手架的文件夹 把文件夹的地址改为cmd打开终端输入以下代码 1 执行npm install g vue cli安装脚手架 2 安装完成后 可以使用vue version 3 我们测试下 在桌面创建
  • 微软网盘onedrive

    将微软网盘 做成一个共享网站 好处就是可以分享大文件 而且还不限制下载速度 如果你受够了百度网盘的限速 可以试试这个 来看看常见的几款Onedrive网盘程序 1 OneIndex 第一个微软网盘分享程序 php编写 兼容性好 我在用 作者
  • Qt鼠标事件

    新建桌面应用程序testMouseEvent 类名MouseEvent 基类QMainWindow 通过重写鼠标事件达到跟踪鼠标位置的效果 添加2个标签做转态及位置更新用 重写鼠标事件 mouseevent h ifndef MOUSEEV
  • 早早踏入刷脸支付市场的人收获颇丰

    支付行业是永远不会萧条的行业 因为只要市场上存在交易 有资金流通就需要支付工具的支撑 不仅如此 支付行业的收入十分稳定 它产生的利润不会受商品价位变化的周期性影响 无论商家经营好坏 它的利润都是保持不变的 所以支付行业对于一些追求持续稳定利
  • 基于python的数字图像处理--学习笔记(三)

    基于python的数字图像处理 学习笔记 三 前言 一 灰度拉伸 二 幂律 伽马 变换 三 对数变换 前言 进入冈萨雷斯的第三章内容 并用python实现功能 我更改了代码源 之前找到太烂了 代码全是错 现在使用的代码很清晰 功能也很全 一
  • pytorch: where、gather函数

    一 where函数 torch where condition x y out x if condition is 1 y if condition is 0 In 29 cond torch rand 2 2 In 30 cond Out
  • Python-Numpy多维数组--切片,索引,高级索引,布尔索引

    一 Numpy 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改 就像 Python 的内置容器对象一样 如前所述 ndarray对象中的元素遵循基于零的索引 有三种可用的索引方法类型 字段访问 基本切片和高级索引 基本切
  • 苹果公司开始招人发力6G无线技术,你们怎么看?

    全球财经观察 新闻速递 看行业 根据彭博社的Mark Gurman发现的招聘信息 苹果正在招聘工程师 从事下一代6G无线技术的研发 根据Gurman的报道 这些职位位于苹果公司在硅谷和圣迭戈办公室 该公司在那里从事无线技术研发和芯片设计 新
  • 设计模式--工厂模式--抽象工厂模式

    工厂模式属于创建型模式基本原理 使用一个工厂类统一生产各种产品 主要流程 1 创建产品的基类 便于统一返回创建的产品 2 创建各种产品 继承基类 注意多态 3 创建工厂类 对每种产品进行区分创建 4 在使用时要先实例化工厂类 在调用期内生产
  • 洛谷-【入门1】顺序结构——C语言

    1 Hello World 题目描述 编写一个能够输出 Hello World 的程序 include
  • iframe 父子组件通信 vue3

    父组件
  • hadoop作业执行流程及代码简略解读

    hadoop作业执行流程及代码简略解读 本文 参考了网上的博文 出处也不知是哪里 不好意思 最近整理磁盘文档发现的好资料所以整理补充了一下供大家学习参考一下吧 1 主要组成部分 Hadoop包括hdfs与mapreduce两部分 hdfs则
  • 区块链密码学学习笔记

    一 哈希算法 哈希函数是将任意长度的二进制明文通过算法处理映射为较短且固定长度的 二进制值 映射后的值也被称为哈希值 哈希值的数据唯一 且形式紧凑 即使只是变更明文中的一个字母 最终得到的哈希值也会发生变更 由于哈希算法本身的特点 任何人都
  • 微信OAuth总结

    基本流程 首先需要登录微信公众号管理后台 配置允许跳转的域名 该域名必须是2级域名 不支持1级域名 所以数量有限 需要规划好 比如配置了a exmaple com为跳转域名 就无法再跳转到b example com了 如果这里配置错误的话
  • Android 学习笔记

    目录 一 Android入门 1 Android 概述 2 Android Studio 3 创建模拟器 4 使用外部模拟器 5 第一个app 二 app开发基础 1 开发语言 2 app工程目录结构 3 文本控件TextView 1 设置
  • 将Eclipse设置为中文

    文章目录 前言 将Eclipse设置为中文 总结 前言 Eclipse默认是英文的 本文详细描述了Eclipse的汉化过程 提示 以下是本篇文章正文内容 下面案例可供参考 将Eclipse设置为中文 语言包下载链接 www eclipse
  • Jenkins 集成Gitlab pipeline,web hook

    Jenkins 集成Gitlab Jenkins构建步骤 Jenkins pipeline语法 pipeline 测试 配置Jenkins 连接到 Gitlab 实现拉取代码 gitlab 创建组 项目 Jenkins Jenkins语法生
  • 抽象类的理解

    package com test basic chapter4 abstractDemo 一 java抽象类的作用 java抽象类的作用具体的可以分成以下的三点 1 抽象类通常都是用来表征对问题领域进行分析 设计中得出的抽象概念 是对大多数