Java 普通类和抽象类有哪些区别?

Java 普通类和抽象类有哪些区别?

在Java中,普通类(Concrete Class)和抽象类(Abstract Class)是两种不同类型的类,它们有一些关键区别。

普通类(Concrete Class):

  1. 实例化: 普通类可以被直接实例化,可以创建对象。

  2. 方法: 普通类可以包含具体的实现方法,不强制子类实现父类的方法。

  3. 多继承: Java中,普通类只能单继承,即一个类只能直接继承一个父类。

  4. 构造方法: 普通类可以有构造方法,用于初始化对象。

示例代码:

// 普通类
class Car {private String model;public Car(String model) {this.model = model;}public void start() {System.out.println("Car is starting.");}
}// 创建普通类的对象
Car myCar = new Car("Toyota");
myCar.start();

抽象类(Abstract Class):

  1. 实例化: 抽象类不能被直接实例化,需要通过子类继承并实现抽象方法后,才能创建对象。

  2. 方法: 抽象类可以包含抽象方法,这些方法在抽象类中没有具体的实现,需要在子类中被具体实现。

  3. 多继承: Java中,抽象类可以通过继承多个接口来实现多继承。

  4. 构造方法: 抽象类可以有构造方法,用于初始化对象。

示例代码:

// 抽象类
abstract class Shape {protected String color;public Shape(String color) {this.color = color;}// 抽象方法,子类需要具体实现public abstract void draw();
}// 子类继承抽象类
class Circle extends Shape {private double radius;public Circle(String color, double radius) {super(color);this.radius = radius;}// 实现抽象方法@Overridepublic void draw() {System.out.println("Drawing a " + color + " circle with radius " + radius);}
}// 创建子类的对象
Circle redCircle = new Circle("red", 5.0);
redCircle.draw();

总体而言,普通类适用于不需要子类强制实现父类方法的情况,而抽象类适用于需要强制子类实现抽象方法的情况,同时抽象类可以包含普通方法和构造方法。选择使用哪种类型取决于设计需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1_企业架构之LNMP

公司企业架构LNMP(单点服务器部署) 学习目标和内容 1、能够描述项目流程 2、能够了解PV、QPS、DAU等参数 3、能够实现服务器基本环境配置 4、能够部署配置MySQL生产环境 5、能够部署配置Nginx生产环境 6、能够部署配置PHP生产环境 7、能够理解PHP-FPM和Nginx关联关系 8、能够配…

思维模型 逆向思维

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。弱者道之用反者道之动。 1 逆向思维的应用 1.1 历史典故 1 曹冲称象 这个故事讲述的是曹操的儿子曹冲如何利用逆向思维解决了称大象重量的难题。曹冲没有直接去称大象的重量,…

海云安谢朝海:开发安全领域大模型新实践 人工智能助力高效安全左移

2023年11月29日,2023中国(深圳)金融科技大会成功举行,该会议是深圳连续举办的第七届金融科技主题年度会议,也是2023深圳国际金融科技节重要活动之一。做好金融工作,需要兼顾创新与安全,当智能体…

在表格中显示字典的内容(根据后端返回的数据)vue3

进入页面,调接口,后端返回数据,indexType为0或者1,要用这个数据显示字典的内容 用插槽拿到数据 写一个函数,在模板中使用 const { proxy } getCurrentInstance(); // 字典-指标类型 const { index_type } proxy.u…

谈谈Listener

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 Tomcat三大组件&#x…

分享82个节日PPT,总有一款适合您

分享82个节日PPT,总有一款适合您 82个节日PPT下载链接:https://pan.baidu.com/s/1boDTl3PiHFXLJ890CoUfJA?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。…

windows配置go调用python的编译环境

go是支持调用python代码的,之前写了几篇linux的部署教程,因为觉得windows的不复杂就没有写,结果今天新部署一个Windows的环境,有些步骤想不起来了,好记性不如烂笔头,还是记录一下吧。 这些是之前写的linux…

CTF-虚拟机-QEMU-前置知识-操作流程与源码阅读

文章目录 总览内存PCI设备PCI配置空间前64个字节对应源码Memorry空间的BARIO空间的BAR MMIOPMIOIspci访问PCI设备配置空间中的Memory空间和IO空间MMIOPMIO QQM(qemu object model)简洁概要将 TypeInfo 注册 TypeImpl:ObjectClass的初始化&…

本地下载预训练模型(涉及内容:Resnet等预训练模型地址,以resnet34为例下载预训练模型并移动到指定地址)

运行如下命令: finetune_net.features torchvision.models.resnet34(pretrainedTrue)一直报错。 离线下载模型的预训练模型地址 复制需要下载的模型地址,粘贴到浏览器地址栏中下载,各种模型的下载地址如下: 1. Resnet:model_…

SAS聚类分析介绍

1 聚类分析介绍 1.1基本概念 聚类就是一种寻找数据之间一种内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作聚类。处于相同聚类中的数据实例彼此相同,处于不同聚类中的实例彼此不同。聚类技术通常又被称为无监督学习&#xff0…

深入了解Vue.js:构建现代、响应式的前端应用

文章目录 1. Vue.js简介1.1 安装Vue.js 2. Vue的核心概念2.1 数据驱动2.2 组件化2.3 生命周期钩子 3. Vue的特性3.1 响应式数据3.2 模板语法3.3 组件通信 4. 示例项目结语 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 &#x1…

Jmeter性能测试 —— 压力模式

压力模式 性能测试中的压力模式有两种。 第一种是并发用户模式(虚拟用户模式)并发用户是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。 从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数…

pytorch中Conv1d、Conv2d与Conv3d详解

1 卷积介绍 1.1 什么是卷积 卷积(convolution),是一种运算,你可以类比于加,减,乘,除,矩阵的点乘与叉乘等等,它有自己的运算规则,卷积的符号是星号*。表达式…

【影刀_客服场景培训知识点总结】

客服相关知识介绍: 1.批量发消息场景,影刀的优势有哪些() 支持转接人工支持各类IM工具发消息支持发不同消息支持自动回复 2.相比晓多/乐言机器人,影刀的核心优势() 更快发送的速度自动回复可…

Linux Makefile的认识及CMake的使用

1 Makefile的作用 Makefile 指的是一个叫 Makefile 的文件,里面提前写了一些指令。每次要自动化的完成一个比较复杂项目的自动编译用的时候,就在命令行输入“make”命令Makefile使用。使用Makefile可以 “智能” 的知道: 1 哪些文件需要先进行编译。 2 当某一文件在某次mak…

Blast中文手册(4)

Extracting data from BLAST databases with blastdbcmd(用blastdbcmd从BLAST数据库中提取数据) Created: June 23, 2008; Updated: January 7, 2021. Extract lowercase masked FASTA from a BLAST database with masking information(从具有掩码信息的BLAST数据库中提取小写掩…

知识管理平台Confluence:win10安装confluence

文章目录 介绍主要功能 安装教程安装java运行平台JRE安装数据库Postgresql在Postgresql创建confluence使用的数据库创建数据库用户创建数据库 安装confluence注册confluence启动confluence 参考链接 介绍 Confluence 是由澳大利亚软件公司 Atlassian 开发的企业协作平台。它提…

2023.11.27 关于 Mybatis 增删改操作

目录 引言 增加用户操作 删除用户操作 修改用户操作 阅读下述文章之间 建议点击下方链接先了解 MyBatis 的创建与使用 MyBatis 的创建与使用 建议点击下方链接先了解 单元测试 的创建与使用 Spring Boot 单元测试的创建与使用 引言 为了方便下文实现增、删、改操作我们先…

推荐3个完美替代 Navicat 的工具

现在企业,mysql数据库用的比较多,mysql数据库客户端的需求也就比较大,navicat就被大家所熟知。 这个工具,确实好用,功能也非常强大,但是,它的强大,是需要付费,或者用一些…

STM32内部温度传感器使用方法详解

STM32内部温度传感器使用方法详解 前言 STM32内部集成了一个片上温度传感器,可以用来测量MCU及周围的温度。测量范围:-40~125,精度1.5℃。虽然精度不高,但在某些应用场景下是够了的,相比于外部接入传感器&#xff0c…